Задать вопрос
Cude
@Cude
Программист, музыкант, велосипедист

Обращение к boolean как к массиву не выдает ошибки. Это фича такая?

Добрый день

Вот такой код не выдает ошибки. Мой мир перевернулся. Как с этим жить?
Естественно вывод всех ошибок включен.

$mas= false;
print $mas['fsfs'];
print $mas['fsfs']['sdfsdfds'];
  • Вопрос задан
  • 420 просмотров
Подписаться 3 Средний 5 комментариев
Пригласить эксперта
Ответы на вопрос 2
@synapse_people
https://3v4l.org/qqABG
Действительно, вы правы, ошибки нет, нотиса тоже
аналогичное поведение у всех скалярных типов ПХП, всех версий

В доке указали - php.net/manual/ru/language.types.array.php
Замечание:
Массив, разыменовывающий скалярное значение, которое не является типом (string), отдаст NULL без какого-либо оповещения об ошибке.
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
For any of the types integer, float, string, boolean and resource, converting a value to an array results in an array with a single element with index zero and the value of the scalar which was converted. In other words, (array)$scalarValue is exactly the same as array($scalarValue).

Attempting to access an array key which has not been defined is the same as accessing any other undefined variable: an E_NOTICE-level error message will be issued, and the result will be NULL.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы