由于最近升级到PHP5.6或什么原因,不确定这是否停止工作。
namespace Data;
class AWS{
private static $config;
public static function setup($config){
if(isset(self::$config)){
throw new Exception("AWS has already been setup.");
}
self::$config = $config;
}
...
}
然后从另一个文件:
use \Data\AWS;
AWS::setup($array_of_configs);
致电设置:
致命错误:访问未声明的静态属性: 在/var/www/html/src/data/AWS.php上的CoPatient \ Data \ AWS :: $ config在线 24
使用xdebug我可以确认$config
包含一维关联数组。
编辑:如果我有一个xdebug监听器正在运行,这似乎只会发生。
答案 0 :(得分:2)
我相信你在调用方法时只是错误地访问它。可能使用像$a = new AWS(); $a->setup();
class AWS {
private static $config;
public static function setup($config){
if(isset(self::$config)){
throw new Exception("AWS has already been setup.");
}
var_dump(self::$config);
self::$config = $config;
var_dump(self::$config);
}
public static function getConfig() {
return self::$config;
}
}
AWS::setup(array('test'));
var_dump(AWS::getConfig());
应该输出:
NULL
array(1) {
[0]=>
string(4) "test"
}
array(1) {
[0]=>
string(4) "test"
}
答案 1 :(得分:0)
我认为你在调用设置之前不要做$ aws = new AWS()。那是对的吗?