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
Форумы портала PHP.SU :: Версия для печати :: использование constant в class
Форумы портала PHP.SU » » Объектно-ориентированное программирование » использование constant в class

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

1. almair - 10 Февраля, 2012 - 14:46:01 - перейти к сообщению
Подскажите как можно использовать константу в классе?
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $test = "Новый";
  3. define ('TEST', $test);
  4.  
  5. class new extends old
  6. {
  7.        public $new_data = array ( TEST."_заголовок" => "текст");
  8. }


Ругается на точку склейки, есть ли вариант обхода или мб я что то не так делаю?
Пробовал и так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. public $new_data = array ({TEST}."_заголовок" => "текст");
2. Мелкий - 10 Февраля, 2012 - 15:05:20 - перейти к сообщению
Присваивайте значение в конструкторе.

Ошибка не в константе, а в самом факте инициализации члена не статичным значением.
3. Зверь - 10 Февраля, 2012 - 15:09:54 - перейти к сообщению
Объявление константы вне класса пренципиально? Если нет, то
PHP:
скопировать код в буфер обмена
  1. class new extends old
  2. {
  3. const TEST = 'Новый';      
  4.  public $new_data = array ( self::TEST."_заголовок" => "текст");
  5. }

А не, так нельзя, тогда в конструкторе
4. almair - 15 Февраля, 2012 - 07:21:30 - перейти к сообщению
Огорчение плохо, потому что у родительского класса уже есть конструктор, не хотелось бы его замещать
5. Мелкий - 15 Февраля, 2012 - 08:53:59 - перейти к сообщению
almair пишет:
у родительского класса уже есть конструктор, не хотелось бы его замещать

Его можно вызвать руками:


В отличии от C++ конструктор родителя не вызывается автоматом, но можно ручками.

 

Powered by ExBB FM 1.0 RC1