このコードがあるとします$test = 'text';
。echo $test[0]
との違いは何echo $test{0}
ですか?結果は同じです。
文字列を含む変数を文字の配列のように扱うのは良い習慣ですか?
さて、私は答えとして私のコメントを集約します:
マニュアルを引用するには
同じ目的で、$str{42} のように中括弧を使用して文字列にアクセスすることもできます。ただし、この構文は PHP 7 で非推奨になりました。代わりに角括弧を使用してください。
また、文書化されていませんが、{} アクセサーは配列に対しても機能するため、$foo{$bar} と $foo[$bar] は完全に同等になります。これは、Perl プログラマーの便宜のための古い構文です。
2 番目の質問に関して、文字列を文字の配列のように扱うことが適切な場合: はい、タスクに役立つ場合は、そうしてください。C のような低水準言語では、文字列は文字の配列であるため、そのように扱うのはごく自然なことです。
ただし、PHP の Unicode サポートは不十分であることに注意してください。そのため、文字列がマルチバイト エンコーディング (つまり UTF-8) の場合、期待どおりに動作しない可能性があります。その場合は、マルチバイト関数を使用することをお勧めします。
「こんにちは、私は文字列 $string{0} の文字です」と書くことができます
ただし、「こんにちは、私は文字列 $string[0] の文字です」と書くことはできません。
"Hello, I am a character of a string " のような文字列連結記号を使用する必要があります。$string[0];