В PHP вы можете обращаться к символам строк несколькими способами, одним из которых является substr (). Вы также можете получить доступ к символу N в строке с фигурными или квадратными скобками, например:
$string = 'hello'; echo $string{0}; // h echo $string[0]; // h
Мой вопрос в том, есть ли преимущество одного над другим? В чем разница между {} и []?
Благодарю.
используйте $string[0]
, другой метод (фигурные скобки) устарел в PHP6 ( src )
Примечание. Строки также могут быть доступны с помощью фигурных скобок, как в $ str {42}, с той же целью. Однако этот синтаксис устарел с PHP 6. Вместо этого используйте квадратные скобки.
Нет никакой разницы. Ответ Оуэна устарел, последняя версия PHP Manual больше не заявляет, что она устарела. § :
Символы внутри строк могут быть доступны и изменены, указав нулевое смещение нужного символа после строки, используя квадратные квадратные скобки, как в
$str[42]
. Подумайте о строке как массиве символов для этой цели . […]Примечание. Строки также могут быть доступны с помощью фигурных скобок, как в
$str{42}
, с той же целью .
Однако кажется, что больше людей / проектов используют []
, и что многие люди даже не знают {}
. Если вам нужно публиковать свой код публично или с людьми, которые не знают синтаксиса фигурных скобок, может быть полезно использовать []
.
Да, нет никакой разницы. Эта языковая причуда имеет некоторую историю …
Первоначально синтаксис фигурной скобки предназначался для замены синтаксиса с квадратной скобкой, который был бы устаревшим:
Позже эта политика была отменена, и вместо этого предпочтительным был синтаксис с квадратными скобками:
и даже позже, кудрявые фигурные скобки были бы устаревшими:
На момент написания этой статьи кажется, что устаревание также отменено, и они просто считаются двумя альтернативными синтаксисами: