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
答案 0 :(得分:10)
你没有。常数是不变的。你不能在里面存放任何东西。
您可以使用静态属性。
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';
}
}
答案 1 :(得分:3)
const必须用常量值定义,它们不能是表达式的结果
http://www.phpbuilder.com/manual/en/language.oop5.constants.php