Почему следующий код "дает сбой" в PHP?
$normal_array = array();
$array_of_arrayrefs = array( &$normal_array );
end( $array_of_arrayrefs )["one"] = 1; // choking on this one
Ожидаемый результат состоит в том, что к последней строке кода добавляется $normal_array с ключом one, имеющим значение 1, но не выводится вообще ничего, даже не выводятся данные, предшествующие этому коду. В реальном контексте этого сценария я использую функцию end (), чтобы всегда добавлять к последней ссылке на массив.
Никаких выводов, даже распечаток, предшествующих этому коду.
возможный дубликат Как я могу использовать ссылки на массивы внутри массивов в PHP?






Это не сбой, а просто синтаксическая ошибка:
end( $array_of_arrayrefs )["one"] = 1;
К сожалению, вы не можете обрабатывать возвращаемые функции как массивы в PHP. Вы должны указать значение явно. К сожалению, здесь это не работает, потому что end копирует возвращаемое значение.
Когда вы говорите «сбой», вы имеете в виду «сообщение о синтаксической ошибке» или «выдачу ошибки времени выполнения» с некоторым описанием?