为什么我不能将$ _SERVER ['DOCUMENT_ROOT']设置为属性?

str*_*ade 1 php oop attributes

为什么我不能设置$_SERVER['DOCUMENT_ROOT']为属性?看示例代码

class foo
{
private $path = $_SERVER['DOCUMENT_ROOT']; // generates error
private $blah;

public function __construct()
{
//code
}

  public function setBla($bla)
  {
   $this->blah = $bla;

  }
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*ieu 5

在声明中初始化时,不能使用其他变量.试试这个:

class foo
{
private $path;
private $blah;

public function __construct()
{
$this->$path = $_SERVER['DOCUMENT_ROOT'];
//code
}

  public function setBla($bla)
  {
   $this->blah = $bla;

  }
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,你确定私人是一个合适的选择,往往受到保护是更可取的.