我希望以这样的方式访问我的一些变量:
System->Config->URL
在这种情况下,“System”是我的核心类,“Config”是一个数组,“URL”是数组中的一个项目。这是我的“system.php”代码:
<?php
abstract class System {
public $Config;
public function __construct() {
$this->Config = (object) array('URL' => 'localhost');
}
}
echo System->Config->URL;
?>
当我运行上面的代码时,我只看到了这个:
Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR), expecting ',' or ';'
它指出了我的 echo
行。
现在,如果我消除抽象概念并使用这个概念,效果会很好!
<?php
class System {
public $Config;
public function __construct() {
$this->Config = (object) array('URL' => 'localhost');
}
}
$System = new System();
echo $System->Config->URL;
?>
我也曾尝试混合使用 static
和 abstract
关键字,但这也不起作用。我什至放弃了 __construct
函数并制作了一个名为“Ready”的非常普通的方法,但是当类被定义为 abstract
时仍然无法调用它。
有人知道这里出了什么问题吗?我已经看到类似的代码运行良好。
任何帮助或想法将不胜感激!
最佳答案
查看“抽象”类的定义。这是一个无法实例化的类。只有继承它的类才能被实例化。
关于PHP抽象类构造函数不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12341770/