Как я могу объединить константу и переменную и сохранить ее в константе класса с PHP?
class My_class { const STATUS_ERROR = 0; const STATUS_OK = 1; const DB_TABLE = TABLE_PREFIX . 'class_table'; }
два состояния const работают нормально и могут быть доступны в методах класса как self::STATUS_ERROR
и self::STATUS_OK
просто отлично.
проблема заключается в том, как остановить следующую ошибку, когда я пытаюсь определить третью константу.
Parse error: syntax error, unexpected '.', expecting ',' or ';' in /home/sub/sub/directory/script.php
2 ответов
вы не знаете. Константы постоянны. В них ничего нельзя хранить.
Вы можете использовать статическое свойство.
class My_Class {
public static $DB_TABLE;
}
My_Class::$DB_TABLE = TABLE_PREFIX . 'class_table';
вы не можете сделать это в объявлении, поэтому вы можете предпочесть статический метод.
class My_Class {
public static function dbTable() {
return TABLE_PREFIX . 'class_table';
}
}
const должен быть определен с постоянным значением, они не могут быть результатом выражения
http://www.phpbuilder.com/manual/en/language.oop5.constants.php