让我用我的代码解释一下我的问题。这有效:
$multiarray = array(
'multikey1' => '',
'multikey2' => ''
);
$array = array(
'key1' => '',
'key2' => '',
'key3' => '',
'key4' => $multiarray
);
print_r($array);
这不起作用:
class Array {
public static $multiarray = array(
'multikey1' => '',
'multikey2' => '',
'multikey3' => ''
);
public $array = array(
'key1' => '',
'key2' => self::$multiarray
);
}
$array = new Array;
不幸的是,这不起作用。知道如何解决这个问题吗?
您无法将成员变量初始化为任何非常量,并且您正在尝试包含另一个数组作为成员变量,这将需要运行时执行。
另请注意,Array
类名无效,因为它与保留字冲突array
用于创建数组。
From 手册 http://www.php.net/manual/en/language.oop5.properties.php:
这个声明可能包括初始化,但是这个
初始化必须是一个常量值——也就是说,它必须能够
在编译时评估并且不得依赖于运行时
信息以便进行评估。
解决方法是在构造函数中设置变量:
class Array2 {
public static $multiarray = array(
'multikey1' => '',
'multikey2' => '',
'multikey3' => ''
);
public $array;
function __construct() {
$this->array = array(
'key1' => '',
'key2' => self::$multiarray
);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)