PHP抽象类构造函数不工作

时间:2012-09-09 18:33:01

标签: php oop constructor abstract-class abstract

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

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;

?>

我还试图混淆staticabstract关键字,但这也没有用。我甚至放弃了__construct函数并创建了一个名为'Ready'的常规方法,但在定义类abstract时仍无法调用它。

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

任何帮助或想法都会受到高度赞赏!

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

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

您可能需要阅读“抽象”的内容。