PHP(新)对象的数组

时间:2017-05-26 13:31:15

标签: php arrays

我正在开发一个基于Web的管理前端,用于我开发的应用程序,在PHP中(在几次失败的尝试让Lua使用Apache和Nginx之后也有点奇怪)并且PHP的数组令我感到沮丧。

我正在尝试初始化一个对象数组,就像在任何其他支持OOP的语言中一样:

private $leftNavItems = array(
        new LeftNavItem("./img/icon/status.png", "status", "App Status", "./articles/app_status.phtml", "app_status")
    );

但是,我收到一条错误,指出“表达式不允许作为字段默认值”。

为什么我不能用新对象初始化数组?我是否必须通过使用临时变量和array_push来解决这个问题?

编辑:我来自OOP语言,如C#,Java和C ++,以及纯程序语言,如Lua。

1 个答案:

答案 0 :(得分:3)

在课程中移动初始化部分'构造函数__construct()。对象属性只能使用可在编译期间评估的值来initialized on their definition

class X {
    private $leftNavItems = array();

    public function __construct()
    {
        $this->leftNavItems = array(
            new LeftNavItem("./img/icon/status.png", "status", "App Status", "./articles/app_status.phtml", "app_status")
        );
    }
}

在编译期间评估属性的初始值设定项;它们不是在初始化类时要执行的代码片段。

您的代码尝试通过创建对象来初始化变量。创建new对象是代码执行期间发生的一种活动。

相关问题