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

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

Добрый день

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

$mas= false;
print $mas['fsfs'];
print $mas['fsfs']['sdfsdfds'];
  • Вопрос задан
  • 422 просмотра
Подписаться 3 Средний 5 комментариев
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽