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 :: использование constant в class

 PHP.SU

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


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

> Описание: Помогите разобраться в чем ошибка
almair
Отправлено: 10 Февраля, 2012 - 14:46:01
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Июль 2009  


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




Подскажите как можно использовать константу в классе?
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}."_заголовок" => "текст");
 
 Top
Мелкий Супермодератор
Отправлено: 10 Февраля, 2012 - 15:05:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Присваивайте значение в конструкторе.

Ошибка не в константе, а в самом факте инициализации члена не статичным значением.


-----
PostgreSQL DBA
 
 Top
Зверь
Отправлено: 10 Февраля, 2012 - 15:09:54
Post Id



Частый гость


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


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




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

А не, так нельзя, тогда в конструкторе

(Отредактировано автором: 10 Февраля, 2012 - 15:12:15)

 
 Top
almair
Отправлено: 15 Февраля, 2012 - 07:21:30
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Июль 2009  


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




Огорчение плохо, потому что у родительского класса уже есть конструктор, не хотелось бы его замещать
 
 Top
Мелкий Супермодератор
Отправлено: 15 Февраля, 2012 - 08:53:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




almair пишет:
у родительского класса уже есть конструктор, не хотелось бы его замещать

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


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


-----
PostgreSQL DBA
 
 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