Ответ 1
Первое упоминание, которое я могу найти, - это комментарий в руководстве - http://php.net/manual/language.types.array.php#99015
Кажется, это принятие синтаксиса в стиле perl.
Я бы натолкнулся на очень странный бит php-кода:
$oink{'pig'} = 1;
var_dump($oink);
$oink{'pig'} = '123123';
echo $oink{'pig'}; /* => 123123 */
echo $oink['pig']; /* => 123123 */
Он работает как массив, но нигде не упоминается в руководстве. Что это?
Первое упоминание, которое я могу найти, - это комментарий в руководстве - http://php.net/manual/language.types.array.php#99015
Кажется, это принятие синтаксиса в стиле perl.
Это , упомянутое в руководстве. {}
- это просто альтернативный синтаксис []
& sect;:
Оба квадратных скобки и фигурные скобки могут использоваться взаимозаменяемо для доступа к элементам массива (например,
$array[42]
и$array{42}
будут делать то же самое в примере выше).
То же самое относится к строкам & sect;:
Символы внутри строк могут быть доступны и изменены, указав нулевое смещение нужного символа после строки, используя квадратные скобки, как в
$str[42]
. Подумайте о строке как массиве символов для этой цели. [...]Примечание. Строки также могут быть доступны с помощью фигурных скобок, например, в
$str{42}
, для той же цели.
В соответствии с этим комментарием к документации, это просто еще одно обозначение, вероятно, похожее на синтаксис Perl: http://www.php.net/manual/de/language.types.array.php#99015
Обновление:. Когда этот ответ был первоначально опубликован, руководство по PHP не имело официальной информации об этой нотации. К 2014 году, однако, комментарий, упомянутый выше, был удален, и, как ответ Pacerier, в руководстве было дано официальное упоминание.
Это указано в руководстве, но это неясно:
http://www.php.net/manual/en/language.types.string.php#language.types.string.substr
В двух словах фигурные скобки доступны только одному символу (попробуйте добавить полную строку, и вы увидите, что она возвращает только первый символ). Он также устарел, поэтому я бы избегал его использования.