PHP - 具有三元运算符混淆的类属性 - 有人可以解释为什么这不起作用

时间:2013-03-13 12:04:46

标签: php oop class

我正在尝试扩展基类并能够从它的子类访问属性,有人可以解释为什么以下工作:

class Base_Class {
        public function is_dev(){
            $var = (substr($_SERVER['HTTP_HOST'], -3) == 'dev') ? TRUE : FALSE;
            return $var;
        }
}

所以我可以通过$this->is_dev()

访问子课程

但以下不起作用:

class Base_Class {
        public $var = (substr($_SERVER['HTTP_HOST'], -3) == 'dev') ? TRUE : FALSE;
}

我希望使用$this->var访问它,但是我得到了一个语法错误,在我到达这个部分之前我不明白。

更新

当我在空间用完之前尝试列出5或6个语法错误时,错误是抱怨很多,以语法错误结束......但第一行读取

expected identifier +,_,static

所有其他人都在说它期待其他各种不存在的东西......肯定会有很多期待

提前致谢。

1 个答案:

答案 0 :(得分:4)

使用__construct功能。这将在加载类时设置var

class Base_Class {
        public $var;
        function __construct(){
            $this->var = (substr($_SERVER['HTTP_HOST'], -3) == 'dev') ? TRUE : FALSE;
        }
}