PHP抽象类构造函数不工作

标签 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 时仍然无法调用它。

有人知道这里出了什么问题吗?我已经看到类似的代码运行良好。

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

最佳答案

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

关于PHP抽象类构造函数不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12341770/

相关文章:

php - Mysql 全文搜索与匹配和反对

Javascript将对象插入数组

php - Jquery 在表单发布后显示 div

javascript - 尝试以网站形式注入(inject) JS? - 警报 ('TK00000025')

c# - 在实例化时启动大量属性是一种好做法吗?

c++ - 复制在我的 string::copy 实现中不起作用

java - 找不到符号符号 : constructor A() location: class A

c++ - const 成员未显式初始化但编译

constructor - function new 或 public static main

php - ereg 的预期生命周期,迁移到 preg