class My_class { const STATUS_ERROR = 0; const STATUS_OK = 1; const DB_TABLE = TABLE_PREFIX . 'class_table'; }
Два состояния consts хорошо работают и могут быть получены доступ в методах класса как self::STATUS_ERROR
и self::STATUS_OK
очень хорошо.
Проблема, один из как остановить следующую ошибку, будучи брошенным, когда я пытаюсь определить третью константу.
Parse error: syntax error, unexpected '.', expecting ',' or ';' in /home/sub/sub/directory/script.php
Не нужно. Константы постоянны. Вы не можете хранить в них ничего.
Однако вы можете использовать статическое свойство.
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';
}
}
константа должна быть определена с постоянным значением, они не могут быть результатом выражения
http://www.phpbuilder.com/manual/en/language.oop5.constants.php