11

このコードがあるとします$test = 'text';echo $test[0]との違いは何echo $test{0}ですか?結果は同じです。

文字列を含む変数を文字の配列のように扱うのは良い習慣ですか?

4

3 に答える 3

18

さて、私は答えとして私のコメントを集約します:

マニュアルを引用するには

同じ目的で、$str{42} のように中括弧を使用して文字列にアクセスすることもできます。ただし、この構文は PHP 7 で非推奨になりました。代わりに角括弧を使用してください。

また、文書化されていませんが、{} アクセサーは配列に対しても機能するため、$foo{$bar} と $foo[$bar] は完全に同等になります。これは、Perl プログラマーの便宜のための古い構文です。

2 番目の質問に関して、文字列を文字の配列のように扱うことが適切な場合: はい、タスクに役立つ場合は、そうしてください。C のような低水準言語では、文字列文字の配列であるため、そのように扱うのはごく自然なことです。

ただし、PHP の Unicode サポートは不十分であることに注意してください。そのため、文字列がマルチバイト エンコーディング (つまり UTF-8) の場合、期待どおりに動作しない可能性があります。その場合は、マルチバイト関数を使用することをお勧めします。

于 2013-01-20T10:55:41.880 に答える
1

「こんにちは、私は文字列 $string{0} の文字です」と書くことができます

ただし、「こんにちは、私は文字列 $string[0] の文字です」と書くことはできません。


"Hello, I am a character of a string " のような文字列連結記号を使用する必要があります。$string[0];

于 2016-11-18T01:06:21.500 に答える