一个类里面的PHP全局变量范围

roa*_*cel 9 php variables scope global class

我有以下脚本

myclass.php

<?php

$myarray = array('firstval','secondval');

class littleclass {
  private $myvalue;

  public function __construct() {
    $myvalue = "INIT!";
  }

  public function setvalue() {
    $myvalue = $myarray[0];   //ERROR: $myarray does not exist inside the class
  }
}

?>
Run Code Online (Sandbox Code Playgroud)

有没有办法通过简单的声明让$ myarray在littleclass中可用?如果可能的话,我不想将它作为参数传递给构造函数.

另外,我希望你实际上可以以某种方式使全局变量对php类可见,但这是我第一次面对这个问题所以我真的不知道.

Nic*_*dze 18

包括global $myarraysetvalue()功能的开始.

public function setvalue() {
    global $myarray;
    $myvalue = $myarray[0];
}
Run Code Online (Sandbox Code Playgroud)

更新:
如评论中所述,这是不好的做法,应该避免.
更好的解决方案是:https://stackoverflow.com/a/17094513/3407923.

  • 我们可以编辑指向最佳实践替代方案吗? (6认同)
  • 请注意,这被认为是一种不好的做法(以及`$ GLOBALS`). (3认同)