Не уверен, что это перестало работать из-за недавнего обновления до 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);
Настройка вызова дает:
Неустранимая ошибка: доступ к необъявленному статическому свойству:
CoPatient \ Data \ AWS :: $ config в /var/www/html/src/data/AWS.php на линии
24
Используя xdebug, я могу подтвердить, что $config
содержит 1-й ассоциативный массив.
Редактировать: Кажется, что это происходит, только если у меня запущен прослушиватель xdebug.
Я полагаю, что вы просто неправильно обращаетесь к нему при вызове метода. Вероятно, с помощью селектора экземпляра, как: $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"}
Я думаю, что вы просто не делаете $ aws = new AWS () перед установкой вызова. Вот так ?