次のクラスでConfig::get('modules');
を呼び出すと、
私はちょうどstatic::$config
を返すと機能はうまく動作しますが、要素を返そうとすると、間違いなく定義されていてもエラーが発生します。
class Config
{
private static $config = NULL;
private static $initialized = FALSE;
public static function _init()
{
if(self::$initialized == TRUE)
{
return;
}
static::$config = $GLOBALS['config'];
unset($GLOBALS['config']);
var_dump(static::$config);
static::$initialized = TRUE;
}
public static function get($property = '')
{
self::_init();
var_dump(static::$config);
$parts = explode('.', $property);
$path = 'config';
foreach($parts as $part)
{
$path .= '["'.$part.'"]';
}
return static::$$path;
}
}
機能とエラーで出力されるvarダンプ。
array(3) {
["APP_VERSION"]=>
string(5) "0.0.1"
["database"]=>
array(3) {
["dsn"]=>
string(32) "mysql:host=localhost;dbname=test"
["user"]=>
string(4) "root"
["pass"]=>
string(0) ""
}
["modules"]=>
array(0) {
}
}
array(3) {
["APP_VERSION"]=>
string(5) "0.0.1"
["database"]=>
array(3) {
["dsn"]=>
string(32) "mysql:host=localhost;dbname=test"
["user"]=>
string(4) "root"
["pass"]=>
string(0) ""
}
["modules"]=>
array(0) {
}
}
Fatal error: Access to undeclared static property: Config::$config["modules"] in C:\xampp\htdocs\project\system\classes\Config.php on line 37
PHPは 'config [" modules "]'という名前の変数を探しています。それはちょうどそのようには動作しません。 – tkausl