根据PHP文档,可以在具有以下限制的类中初始化属性:
“此声明可以包括一个初始化,但是此初始化必须是一个常量值,也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估。”
我正在尝试初始化数组并遇到一些问题。虽然这可以正常工作:
public $var = array(
1 => 4,
2 => 5,
);
这会产生语法错误:
public $var = array(
1 => 4,
2 => (4+1),
);
甚至不被接受:
public $var = 4+1;
这表明它不是array()语言构造的限制。
现在,我最后一次检查时,“ 4 + 1”等于一个常数值,不仅应该接受它,而且实际上应该对其进行优化。无论如何,它肯定可以在编译时进行评估。
那么这是怎么回事?相对于“能够在编译时求值”的任何表达式而言,限制是否真的沿“完全不能有任何计算出的表达式”的思路进行?在文档语言中使用“求值”表示允许进行简单的计算,但是a ...
如果这是PHP中的错误,是否有人有错误ID?我试图找到一个,但是没有任何运气。
慕盖茨4494581
素胚勾勒不出你
暮色呼如