Php 为什么可以';我不能在类属性声明中进行数学运算吗?
显示了以下对我来说失败的示例Php 为什么可以';我不能在类属性声明中进行数学运算吗?,php,properties,Php,Properties,显示了以下对我来说失败的示例 class SimpleClass{ private $var3 = 1+2; } 分析错误:语法错误,意外的“+”,应为“,”或“;” 你知道为什么吗 php版本5.4.9php不支持计算值,即使这两个值在编译时在技术上都是已知的。只是因为在php中不能。在PHP中,不能长时间使用声明计算属性赋值。不确定为什么要这样实现。为属性添加默认值应该在构造函数内部完成。在声明属性时添加默认值只是PHP中使用的一种非OO方式,可以让开发人员更轻松地使用它,但正如您所
class SimpleClass{
private $var3 = 1+2;
}
分析错误:语法错误,意外的“+”,应为“,”或“;”代码>
你知道为什么吗
php版本5.4.9php不支持计算值,即使这两个值在编译时在技术上都是已知的。只是因为在php中不能。在PHP中,不能长时间使用声明计算属性赋值。不确定为什么要这样实现。为属性添加默认值应该在构造函数内部完成。在声明属性时添加默认值只是PHP中使用的一种非OO方式,可以让开发人员更轻松地使用它,但正如您所看到的,它还没有得到很好的支持
解决方案:
class-Foo
{
私有$var;
公共函数构造()
{
$this->var=2+3
}
}
文档从未声明它是有效的属性声明。它特别指出它是一个无效的例子
直接从你的链接
<?php
class SimpleClass
{
// invalid property declarations:
public $var1 = 'hello ' . 'world';
public $var2 = <<<EOD
hello world
EOD;
public $var3 = 1+2;
public $var4 = self::myStaticMethod();
public $var5 = $myVar;
// valid property declarations:
public $var6 = myConstant;
public $var7 = array(true, false);
// This is allowed only in PHP 5.3.0 and later.
public $var8 = <<<'EOD'
hello world
EOD;
}
?>
这就是PHP语言语法的定义方式。5行以上的示例,在您链接的页面上://无效的属性声明:
有趣的页面链接说这不能做你必须阅读整个示例哈,facepalm,我阅读了页面中除此之外的每一行。一定没有注意到橙色的评论。