Это почти невозможно (кроме как объявить снаружи как в паблорском ответе), но я нашел способ:
Вам нужно будет использовать define()
, поскольку синтаксис const
выдаст ошибку в этом решении. Вам также необходимо объявить ссылочный массив перед передачей его по ссылке на array_merge()
.
Рабочий пример:
<code>define('CONST_ARRAY', [
"require" => ($require = ['a', 'b']),
"update" => array_merge(($arr = &$require), ['c', 'd'])
]);
// Output
echo '<pre>' . print_r(CONST_ARRAY, true) . '
';
Этот синтаксис не так прост в использовании. Я пытался со ссылкой и оператор распространения (без успеха) как:
"update" => [...&$require, 'c', 'd']
Примечание:
Это, вероятно, не то, чтобы использовать в реальной жизни. Этот ответ получил справку от PHP: массив с самообращающимися ссылками принял ответ.