Ключ нулевой переменной равен null not error

У нас есть переменная, которая по какой-то причине считается массивом, но она имеет значение null.

$var = null

Мы пытаемся получить значение из этой переменной.

$value = $var['key']

Это не порождает ошибку, моя интуиция заключается в том, что она будет. Вместо этого происходит то, что значение $ теперь также равно null. Есть ли особая причина, по которой указанная выше строка не вызывает ошибку?

Существует «почти дубликат»: почему обращение к индексу массива по логическому значению не вызывает какой-либо ошибки?

код выглядит так:

 $var = false; $value = $var['key']; 

и ответ – это просто документ

Доступ к переменным других типов (не включая массивы или объекты, реализующие соответствующие интерфейсы) с использованием [] или {} молча возвращает NULL.

Итак, в этой строке (я говорю о вашем случае, $ var = null, но с булевым будет одно и то же объяснение, просто замените NULL на boolean)

 $var['key'] 

$ var – это переменная типа NULL , а доступ к переменной типа NULL (другой тип этого массива или объекта) с использованием [] молча возвращает NULL.

Вы можете использовать этот вид резервного

 function _get($from, $key) { if(is_null($from)) { trigger_error('Trying to get value of null'); return null; } return $from[$key]; } 

+ Изменить

 $value = $var['key']; 

в

 $value = _get($var, 'key');