Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Доступ к константе класса внутри другого класса

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Не получается получить доступ к константам другого класса чере ссылку
Dion
Отправлено: 29 Октября, 2012 - 06:26:15
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Всем доброго времени суток! Собственно вопрос возник... смотрим код и читаем комменты в нём...
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. class main
  4. {
  5.    const CONSTANTA = 'Hello World!';
  6.    public $var;
  7. }
  8.  
  9. class side
  10. {
  11.    private $main;
  12.    private function __construct(&$main_class)
  13.    {
  14.         $this->main = &$main_class;
  15.         echo $this->main->var;           // С переменными всё отлично! "1"
  16.         echo $main_class::CONSTANTA; // Так тоже всё отлично, вернёт содержимое
  17.         echo $this->main::CONSTANTA; // А вот тут ФИГУ! Ошибка...
  18.    }
  19. }
  20.  
  21. $main = new main;
  22. $main->var = 1;
  23.  
  24. $side = new side($main);
  25. ?>
  26.  


Нас интересует echo $this->main::CONSTANTA;
Возможно я совсем чайник в ООП Огорчение
Почему так не получается обратиться к константе?
Конечно можно переопределить все нужные константы в Конструкте, но хотелось бы напрямую по ссылке обращаться.
Как это правильно делать, подскажите?
 
 Top
dubasua
Отправлено: 29 Октября, 2012 - 06:37:31
Post Id



Посетитель


Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012  


Помог: 7 раз(а)




Потому что константа есть статическая, и она не является свойством обьекта.
 
 Top
sKaa
Отправлено: 29 Октября, 2012 - 07:36:21
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


Помог: 25 раз(а)

[+]


Dion пишет:
$this->main::CONSTANTA; // А вот тут ФИГУ! Ошибка...

http://php.net/manual/ru/function.constant.php
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB