(4 1)”? “/>(4 1)”? " />
问题:
尽管 PHP 文档声明属性初始化可以包含常量值,但尝试使用简单的表达式初始化数组,例如“2 => (4 1)”或用“4 1”赋值会导致语法错误。为什么不接受这些表达式?
答案:
此限制是PHP 版本 5.6 中引入了常量标量表达式。
在这个新功能下,您现在可以在各种上下文中提供涉及数字和字符串文字和/或常量的标量表达式,包括常量和属性声明:
<code class="php">class C { const THREE = TWO + 1; const ONE_THIRD = ONE / self::THREE; }</code>
因此,之前导致语法错误的表达式现在在 PHP 5.6 及更高版本中有效:
<code class="php">public $var = array( 1 => 4, 2 => (4+1), ); public $var = 4+1;</code>
这些表达式可以在编译时求值,并且不依赖运行时信息,满足属性初始化常量值的要求。
以上是为什么我不能使用像“2 => (4 1)”这样的简单表达式来初始化 PHP 类属性?的详细内容。更多信息请关注PHP中文网其他相关文章!