首页  >  文章  >  后端开发  >  为什么我不能使用像“2 => (4 1)”这样的简单表达式来初始化 PHP 类属性?

为什么我不能使用像“2 => (4 1)”这样的简单表达式来初始化 PHP 类属性?

Susan Sarandon
Susan Sarandon原创
2024-11-01 12:49:58792浏览

Why Can't I Initialize PHP Class Properties with Simple Expressions Like (4 1)”? “/>(4 1)”? " />

使用简单表达式的 PHP 类属性声明

问题:

尽管 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn