类属性声明

Gab*_*aru 1 php class object

我有一段时间没有使用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文件

此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估.

所以,根据文档,我的代码应该工作.这里有什么我想念的吗?

Joh*_*nde 8

声明类的成员时,可以为它们赋值,但不能执行复杂的操作,如数学或函数调用.

<?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)