2

我希望以这样的方式访问我的一些变量:

System->Config->URL

在这种情况下,“系统”是我的核心类,“配置”是一个数组,“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;

?>

我也尝试过混淆staticandabstract关键字,但这也没有用。我什至放弃了这个__construct函数,做了一个非常普通的方法,叫做'Ready',但是在定义类时仍然无法调用它abstract

有谁知道这里有什么问题?我已经看到类似的代码效果很好。

任何帮助或想法将不胜感激!

4

2 回答 2

4

查看“抽象”类的定义。这是一个无法实例化的类。只有继承它的类才能被实例化。

于 2012-09-09T18:34:53.680 回答
2

我不确定您要做什么。第二个例子有效,因为它是正确的。抽象类是您需要扩展的类,然后您可以实例化该(子)类,就像在您的工作示例中一样。

您可能需要阅读“抽象”的作用。

于 2012-09-09T18:35:34.087 回答