#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. Там же ответы на простую и сложную обработку выражений, которые, надеюсь, будут так же полезны.
Комментариев нет:
Отправить комментарий