我有一个类,我想在其中定义其他类使用的一些常量。const 关键字对我来说还不够,因为我想例如使用像 2.0 * pi() 这样的数学表达式作为常量。怎么做?
问问题
176 次
2 回答
4
我了解您想将数学表达式分配给常数。
像:
const FOO = 2.0*pi();
PHP 常量只能包含标量值。如果您希望其他类使用共享信息,则必须为此使用静态函数/方法。
例子:
static public function foo()
{
return 2.0*pi();
}
于 2011-07-12T19:25:29.170 回答
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 还没有稳定的版本,因此目前不建议在生产中使用它。
于 2014-08-23T09:41:54.263 回答