试图访问PHP类构造函数中所需的文件数组


Trying to access a required files array in a PHP Class constructor

我犯了一个非常愚蠢的错误,我不知道为什么。

我在类声明之前包含一个文件,如下所示:

require_once('assets.php') //php_include_path is set to the correct folder and the file loads
class A{

function __construct(){
var_dump($assets); // dumps NULL
}
}

在assets.php中,我有一个这样的数组:

$assets['file'] = array('abc','qrd');

为什么我在这里变成空?

我可以选择两种方法,根据您的情况,您可以决定哪种方法最有效。

使用资产作为类构造函数的参数$除非使用下面这样的类属性,否则资产只能在构造函数中使用。

require_once('assets.php');
class A{
  function __construct($assets){
    var_dump($assets);
  }
}
$a = new A($assets);

将require放入构造函数中。此示例还具有一个类属性,因此您可以在该类的所有方法中使用$this->_assets

class A{
  protected $_assets;
  function __construct(){
    require_once('assets.php');
    $this->_assets = $assets;
    var_dump($this->_assets);
  }
}