Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Гибкое обращение к константам класса

Сообщения:  [1-5] 

 
 автор: ДацкыйКот   (19.03.2009 в 20:31)   письмо автору
 
   для: Loki   (19.03.2009 в 19:33)
 

Спасибо, посмотрел.. Пока наверно самое очевидное и простое - вот такое решение:

constant("$class::$constName")


http://ru.php.net/manual/ru/function.constant.php - вариант рассмотрен в примере 1

  Ответить  
 
 автор: Loki   (19.03.2009 в 20:14)   письмо автору
 
   для: dobrynin   (19.03.2009 в 19:57)
 

тут случай когда значение переменной является именем константы

  Ответить  
 
 автор: dobrynin   (19.03.2009 в 19:57)   письмо автору
 
   для: ДацкыйКот   (19.03.2009 в 17:00)
 

точно не помню по поводу констант, но по моему знак $ перед именем константы присутствовать не должен

  Ответить  
 
 автор: Loki   (19.03.2009 в 19:33)   письмо автору
 
   для: ДацкыйКот   (19.03.2009 в 17:00)
 

Собственно, для констант такой синтаксис и не заявлен - только для функций.
посмотрите тут в комментариях предложено несколько решений
http://ru.php.net/manual/ru/language.oop5.constants.php

  Ответить  
 
 автор: ДацкыйКот   (19.03.2009 в 17:00)   письмо автору
 
 

Собственно, хотелось бы обращаться к константе следующим образом:

$class::$constName


Т.е. так чтобы можно было свободно задавать имя класса и имя константы.

Естественно, PHP так не разрешает. Функции call_user_const() тоже нет.

Пока извратился через выполнение кода в строке:

eval("\$var = $class::$constName;");


В данном примере значение константы, определенной именем класса и именем константы, переносим во временную переменную.

Может кто знает более элегантные методы?

  Ответить  

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования