连接实例变量

时间:2012-06-25 09:24:38

标签: php

我无法弄清楚为什么会收到此错误:

  

解析错误:语法错误,意外'。',期待','或'在第5行的Settings.php中

这是代码

class Settings
{
    public $appDir = 'app';
    public  $controllersDir = $appDir . '/controllers';

}

4 个答案:

答案 0 :(得分:2)

Class属性中不能包含变量。

class Settings
{
    public $appDir = 'app';
    public  $controllersDir = 'app/controllers';

}

答案 1 :(得分:1)

您无法在类定义中执行任意代码。您只能声明值(静态字符串,数字和带有静态信息的数组)。

如果要动态添加值,则必须在构造函数中执行此操作。

class Settings 
{
    public $appDir = 'app';
    public $controllerDir = '/controllers';

    public function __construct()
    {
        $this->controllerDir = $this->appDir . $this->controllerDir;    
    }    
}

答案 2 :(得分:0)

我相信你想要的是这个

class Settings
{
    public $appDir = 'app';
    public  $controllersDir;


    function __construct(  ) {
        $this->$controllersDir = $this->appDir . '/controllers';
    }
}

如果我没有弄错的话,你不能进行依赖于另一个变量的变量初始化。

答案 3 :(得分:0)

无论如何这样做是不好的做法。 不应在声明中定义值... 您应该使用函数getControllerDir返回两个私有属性的串联。