In PHP können Sie auf verschiedene Arten auf Zeichen von Strings zugreifen, eine davon ist substr(). Sie können auch auf das N-te Zeichen in einer Zeichenfolge mit geschweiften oder eckigen Klammern zugreifen, wie folgt:
$string = 'hello';
echo $string{0}; // h
echo $string[0]; // h
Meine Frage ist, gibt es einen Vorteil des einen gegenüber dem anderen? Was ist der Unterschied zwischen {} und []?
Vielen Dank.
benutzen $string[0]
die andere Methode (geschweifte Klammern) ist in PHP6 veraltet (Quelle)
Hinweis: Für denselben Zweck kann auch mit geschweiften Klammern wie in $str{42} auf Zeichenfolgen zugegriffen werden. Diese Syntax ist jedoch ab PHP 6 veraltet. Verwenden Sie stattdessen eckige Klammern.
![PHP $string{0} vs. $string[0]; 1 Benutzer-Avatar](https://www.viresist.org/wp-content/uploads/PHP-string0-vs-string0.png)
Schrittmacher
Es gibt keinen Unterschied. Owens Antwort ist veraltet, die neueste Version von PHP Manual gibt nicht mehr an, dass sie veraltet ist §:
Auf Zeichen innerhalb von Zeichenfolgen kann zugegriffen und sie geändert werden, indem der nullbasierte Offset des gewünschten Zeichens nach der Zeichenfolge mithilfe von eckigen Array-Klammern angegeben wird, wie in $str[42]
. Stellen Sie sich zu diesem Zweck einen String als ein Array von Zeichen vor. […]
Hinweis: Auf Zeichenfolgen kann auch mit geschweiften Klammern zugegriffen werden, wie in $str{42}
, für den gleichen Zweck.
Es scheint jedoch, dass mehr Personen / Projekte verwendet werden []
und das wissen viele gar nicht {}
ist möglich. Wenn Sie Ihren Code öffentlich oder mit Personen teilen müssen, die die Syntax der geschweiften Klammern nicht kennen, ist es kann vorteilhaft zu verwenden []
.
AKTUALISIERT: Zugriff auf Zeichenketten mit {}
ist veraltet, verwenden []
stattdessen.
Ja, es gibt keinen Unterschied. Diese Spracheigenart hat eine Geschichte …
Ursprünglich sollte die Syntax der geschweiften Klammern die Syntax der eckigen Klammern ersetzen, die veraltet sein sollte:
http://web.archive.org/web/20010614144731/http://www.php.net/manual/en/language.types.string.php#language.types.string.substr.
Später wurde diese Richtlinie umgekehrt und stattdessen die Syntax mit eckigen Klammern bevorzugt:
http://web.archive.org/web/20060702080821/http://php.net/manual/en/language.types.string.php#language.types.string.substr
und sogar später würden die geschweiften Klammern veraltet sein:
http://web.archive.org/web/20080612153808/http://www.php.net/manual/en/language.types.string.php#language.types.string.substr
Zum Zeitpunkt dieses Schreibens scheint es, dass die Ablehnung ebenfalls zurückgezogen wurde und sie nur als zwei alternative Syntaxen betrachtet werden:
http://web.archive.org/web/20160607224929/http://php.net/manual/en/language.types.string.php#language.types.string.substr
Der Zugriff auf geschweifte Klammern war in PHP 7.4 veraltet
Array- und String-Offset-Zugriff mit geschweiften Klammern ¶
Die Array- und String-Offset-Zugriffssyntax mit geschweiften Klammern ist veraltet. Verwenden Sie $var[$idx] statt $var{$idx}.
PHP 7.4 Veraltete Funktionen, PHP Core
10117900cookie-checkPHP $string{0} vs. $string[0];yes