class c{
public $myV = &$_GET;
}
它给了我错误:(
如果我做一个简单的事情:
$myV = &$_GET;
它有效
答案 0 :(得分:4)
你甚至不能这样做:
public $x = $y;
从手册:
此声明可能包括初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估。
要解决此问题,只需在__construct
函数中设置它。
public function __construct()
{
$this->myV = &$_GET;
}
答案 1 :(得分:2)
...但是这个初始化必须是一个 恒定值 - 也就是说,它必须是 能够在编译时进行评估 并且不能依赖于运行时 信息以便进行评估。
您可以在构造函数中定义此依赖项。
答案 2 :(得分:1)
试试这个:
class c {
public $myV;
function c() {
$this->myV = &$_GET;
}
}
在实例化类之前,不能将变量分配给字段。这样,当您从类中创建对象时,将设置变量。
答案 3 :(得分:1)
你可以达到类似的效果:
class c{
public $myV;
function __construct() { $this->myV = &$_GET; }
}