Страницы

Поиск по вопросам

воскресенье, 12 января 2020 г.

Обращение к элементу массива в строке PHP

#php


Как можем обратиться к элементу массива в строке:

 1, "second" => 2, "third" => 3); 
    echo "Это $array[first] элемент массива\n";       /// #1
    echo "Это {$array["second"]} элемент массива\n";  /// #2
    echo "Это ".$array["third"]." элемент массива\n"; /// #3
?>


Интересует следующее:

Почему когда мы обращаемся к первому элементу массива мы не обрамляем его хотя бы
одинарными кавычками? (#1)

Понятно почему вне строки мы используем кавычки для обращения к элементу массива
- т.к если бы их не было, была бы синтаксическая ошибка по поводу не существующей константы
(Это относится что к #2 что к #3)
    


Ответы

Ответ 1



Ответ надо искать в документации не на строки, а на массивы: Замечание: Повторим, внутри строки (string), заключенной в двойные кавычки, корректно не окружать индексы массива кавычками, поэтому "$foo[bar]" является верной записью. Объяснения, впрочем там тоже нет, но хотя бы есть прямое указание на корректность синтаксиса. Когда-то объяснение там было, но, видимо, снесли, как высосанное из пальца. И наиболее аднкватным ответом будет "тут так заведено".

Ответ 2



Если интерпретатор встречает знак доллара ($), он захватывает так много символов, сколько возможно, чтобы сформировать правильное имя переменной. Если вы хотите точно определить конец имени, заключайте имя переменной в фигурные скобки. ... Аналогично могут быть обработаны элемент массива (array) или свойство объекта (object). В индексах массива закрывающая квадратная скобка (]) обозначает конец определения индекса. Для свойств объекта применяются те же правила, что и для простых переменных. "purple"); echo "He drank some $juices[0] juice.".PHP_EOL; echo "He drank some $juices[1] juice.".PHP_EOL; echo "He drank some $juices[koolaid1] juice.".PHP_EOL; Взято c php.net. Там же ответы на простую и сложную обработку выражений, которые, надеюсь, будут так же полезны.

Комментариев нет:

Отправить комментарий