ふと PHP のドキュメントを眺めていたら、次のように書かれていました
PHP: 文字列(English)
注意: $str{42} のように波括弧を使用してアクセスすることも可能です。 しかし、角括弧を使用する方法のほうが推奨されます。 なぜなら、{波括弧} 形式は PHP 6 で廃止される予定だからです。
Note: They may also be accessed using braces like $str{42} for the same purpose. However, using square array-brackets is preferred because the {braces} style is deprecated as of PHP 6.
PHP5 リリース前は
$str = “foo”; echo $str[0];
が非推奨で
$str = “foo”; echo $str{0};
が推奨されていましたが、方針転換をしたようです。
参考:
– 2004 年 3 月のマニュアル同項(English)(archive.org)
波括弧の後に任意の文字をゼロから始まるオフセットで指定することに より、文字列内の文字にアクセスすることが可能です。
注意: 過去の互換性のため、配列括弧を使用することが可能です。しかし、 この構文はPHP 4に依存しています。
Characters within strings may be accessed and modified by specifying the zero-based offset of the desired character after the string in curly braces.
Note: For backwards compatibility, you can still use array-braces for the same purpose. However, this syntax is deprecated as of PHP 4.
以前はこうなっていました。