我有一段时间没有使用PHP,但我尝试过这样的事情:
<?php
class Something {
public $x = 2 * 3; // (line 4)
}
Run Code Online (Sandbox Code Playgroud)
此代码触发以下错误:
[Wed Feb 13 17:43:56 2013] [错误] [客户端127.0.0.1] PHP解析错误:语法错误,意外'*',期待','或';' 在第4行的/var/www/problem.php中
在PHP文件说
此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估.
所以,根据文档,我的代码应该工作.这里有什么我想念的吗?
声明类的成员时,可以为它们赋值,但不能执行复杂的操作,如数学或函数调用.
<?php
class Something {
public $x = 2 * 3; // (line 4)
}
Run Code Online (Sandbox Code Playgroud)
可:
<?php
class Something {
public $x = 6; // (line 4)
}
Run Code Online (Sandbox Code Playgroud)
因此,在您的情况下,您将要在构造函数中初始化该值.
<?php
class Something {
public $x;
public function __construct()
{
$this->x = 2 * 3;
}
}
Run Code Online (Sandbox Code Playgroud)