Задать вопрос
@Kontrael

Почему несуществующий ключ массива обрабатывается PHP как 0?

Почему в результате выполнения кода:
$ar = [ 'TEST'  => "asdf"];

var_dump($ar['TEST']['TEST2']);

Вот такой результат?
string(1) "a"
Т.е. судя по всему ключ "TEST2" интерпретируется как "0". Разве не должен быть null, в соответствии с документацией?
5ea1563a96502270724915.png
https://www.php.net/manual/ru/language.types.array.php
  • Вопрос задан
  • 220 просмотров
Подписаться Простой 11 комментариев
Решения вопроса 1
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Вы смотрите документацию к массивам, а ошибка то у вас на доступе к строке

https://www.php.net/manual/en/language.types.strin...
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
в РНР есть функционал доступа к строкам как к массивам.

И тебе выводит существующий элемент строки-массива "asdf" с индексом 0.
К нулю приводится не null, которого здесь нигде нет, а строка 'TEST2'

РНР при этом ругается страшными словами.
Ответ написан
Комментировать
Ты обращаешься к строке как к массиву
$var = [];
var_dump($var['TEST2']);

NOTICE Undefined index: TEST2 on line number 4
NULL


$var = 'asdf';
var_dump($var['TEST2']);

WARNING Illegal string offset 'TEST2' on line number 8
string(1) "a"
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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