Imho,这个问题值得PHP 5.6的答案,感谢@jammin
comment
从PHP 5.6开始,你可以为一个常量定义一个静态标量表达式:
class Foo {
const BAR = "baz";
const HAZ = self::BAR . " boo\n";
}
虽然这不是问题的一部分,但应该意识到实施的限制。以下将不工作,虽然它是静态内容(但可能在运行时被操纵):
class Foo {
public static $bar = "baz";
const HAZ = self::$bar . " boo\n";
}
// PHP Parse error: syntax error, unexpected '$bar' (T_VARIABLE), expecting identifier (T_STRING) or class (T_CLASS)
class Foo {
public static function bar () { return "baz";}
const HAZ = self::bar() . " boo\n";
}
// PHP Parse error: syntax error, unexpected '(', expecting ',' or ';'