PHP类属性可以等于另一个类属性吗?

我想做这个:

class MyClass {
   var $array1 = array(3,4);
   var $array2 = self::$array1;
}

和$array2不起作用.

你有一个解决方案/技巧来使类属性等于另一个类属性吗?

最佳答案
根据PHP Manual

The default value must be a constant expression, not (for example) a variable, a class member or a function call.

你可以做的是:

class MyClass {
    var $array1 = array(3,4);
    var $array2 = array();

    function MyClass() {
        $this->array2 = $this->array1;
    }
}

每次创建新对象时,都会调用MyClass函数(如果你在PHP5中,则调用__construct),因此MyClass的任何实例都将具有与其array1属性具有相同值的array2属性.

$myclass = new MyClass();
print_r($myclass->array1); // outputs Array ( [0] => 3 [1] => 4 ) 
print_r($myclass->array2); // outputs Array ( [0] => 3 [1] => 4 ) 

转载注明原文:PHP类属性可以等于另一个类属性吗? - 代码日志