我犯了一个非常愚蠢的错误,我不知道为什么。
我在类声明之前包含一个文件,如下所示:
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);
}
}