Свойство объекта массива php

Позвольте мне объяснить мою проблему с моим кодом. Это работает:

$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; 

К сожалению, это не работает. Любая идея, как это решить?

Solutions Collecting From Web of "Свойство объекта массива php"

Вы не можете инициализировать переменные-члены во все, что не является постоянным, и вы пытаетесь включить другой массив в качестве переменной-члена, что потребует выполнения выполнения.

Также обратите внимание, что имя класса Array недопустимо, поскольку оно конфликтует с зарезервированным array слов, используемым для создания массива.

Из руководства :

Это объявление может включать инициализацию, но эта инициализация должна быть постоянным значением, то есть она должна быть способна быть оценена во время компиляции и не должна зависеть от информации о времени выполнения для оценки.

Обходным путем является установка переменной в конструкторе:

 class Array2 { public static $multiarray = array( 'multikey1' => '', 'multikey2' => '', 'multikey3' => '' ); public $array; function __construct() { $this->array = array( 'key1' => '', 'key2' => self::$multiarray ); } }