我有一个类,我想在其中定义其他类使用的一些常量。 const关键字对我来说还不够,因为我想要使用像2.0 * pi()这样的数学表达式作为常量。怎么做?
答案 0 :(得分:4)
我知道你想要一个数学表达式给一个常量。
喜欢:
const FOO = 2.0*pi();
PHP常量只能包含标量值。如果您希望其他类使用共享信息,则必须使用静态函数/方法。
示例:
static public function foo()
{
return 2.0*pi();
}
答案 1 :(得分:1)
实际上在PHP 5.6中实现了类似的东西,您可以在其中将各种表达式的结果分配给类常量。
您可以在此处详细了解:
http://php.net/manual/en/migration56.new-features.php#migration56.new-features.const-scalar-exprs
在这里:
https://wiki.php.net/rfc/const_scalar_exprs
根据文档,仍然不允许分配函数结果,但是以下与示例结果相同的表达式应该是完全有效的:
const FOO = M_PI*2;
请注意,PHP 5.6还没有稳定的版本,因此现在不建议在生产中使用它。