質問: **文字列は配列と同じように振る舞うのですか?** ・12はインデックス? ・それともバイト数か何か? ・{}は文字列を展開している?? ``` $a ="stackoverflow"; echo $a{12}; //w echo $a[12]; //w ```
回答: "PHP における文字列型は、バイトの配列と整数値 (バッファ長) "と言語リファレンス 文字列型の詳細に書かれています。 > > ・12はインデックス? ・それともバイト数か何か? > > > 12はインデックス(バイト単位)です。 > > ・{}は文字列を展開している?? > > > 展開していますが、あえて使うなら `[]`で、また、`mb_substr(),substr()` を使用することをお勧めします。 奇をてらう使い方ではなく、基本的なPHPでの波括弧の使い方を ・文字列内での変数展開時使用:変数の前後に、スペースが無いと変数名が判別できないので、変数名を明確にする為に波括弧を使用します 例、 ``` ○ $sting0 = ”晴天”; $string1 = "本日は{$string0}なり"; ○ $sting0 = ”晴天”; $string1 = "本日は $string0 なり"; × $sting0 = ”晴天”; $string1 = "本日は$string0なり"; ``` ・if文で,複数行の処理をまとめる為に使用 例、 ``` if(1) 処理1 if(1) { 処理1 処理2 処理3 処理4 } ``` ・ただ、複数行を囲み処理単位を明確にする(後で自分が見て直ぐに判るようにする。Objectになるわけではありません。if文と同じでスコープが変わることはありません。) ``` { 処理1 処理2 処理3 } ```