我想做这个:
class MyClass { var $array1 = array(3,4); var $array2 = self::$array1; }
并且$array2
不起作用.
你有一个解决方案/技巧来使类属性等于另一个类属性吗?
根据PHP Manual
:
默认值必须是常量表达式,而不是(例如)变量,类成员或函数调用.
你可以做的是:
class MyClass { var $array1 = array(3,4); var $array2 = array(); function MyClass() { $this->array2 = $this->array1; } }
每次创建新对象时都会调用该函数MyClass
(或者__construct
如果您使用的是PHP5),因此任何实例都MyClass
将具有array2
与其array1
属性具有相同值的属性.
$myclass = new MyClass(); print_r($myclass->array1); // outputs Array ( [0] => 3 [1] => 4 ) print_r($myclass->array2); // outputs Array ( [0] => 3 [1] => 4 )