42651
**文字列は配列と同じように振る舞うのですか？**  
・12はインデックス？  
・それともバイト数か何か？  
・{}は文字列を展開している？？

```

    $a ="stackoverflow";
    echo $a{12}; //w
    echo $a[12]; //w
    
```
CC BY-SA 3.0
2018-03-23T01:01:46.413
42593
2018-03-26T02:56:01.667
2018-03-26T02:51:40.900
2238
7886
question
php
PHPの文字列は配列と同じように振る舞うのですか
"PHP における文字列型は、バイトの配列と整数値 (バッファ長) "と言語リファレンス 文字列型の詳細に書かれています。
<http://php.net/manual/ja/language.types.string.php#language.types.string.details>

> ・12はインデックス？ ・それともバイト数か何か？

12はインデックス（バイト単位）です。

> ・{}は文字列を展開している？？

展開していますが、あえて使うなら `[]`で、また、`mb_substr(),substr()` を使用することをお勧めします。

奇をてらう使い方ではなく、基本的なPHPでの波括弧の使い方を  
・文字列内での変数展開時使用：変数の前後に、スペースが無いと変数名が判別できないので、変数名を明確にする為に波括弧を使用します

例、

```

    ○   $sting0 = ”晴天”; $string1 = "本日は{$string0}なり";
    ○   $sting0 = ”晴天”; $string1 = "本日は $string0 なり";
    
    ×   $sting0 = ”晴天”; $string1 = "本日は$string0なり";
    
```

・if文で,複数行の処理をまとめる為に使用

例、

```

    if(1) 処理１
    
    if(1) {
     処理１
     処理２
     処理３
     処理４
    }
    
```

・ただ、複数行を囲み処理単位を明確にする（後で自分が見て直ぐに判るようにする。Objectになるわけではありません。if文と同じでスコープが変わることはありません。）

```

    {
     処理１
     処理２
     処理３
    }
    
```
CC BY-SA 3.0
2018-03-26T02:47:09.877
42651
2018-03-26T02:56:01.667
2018-03-26T02:56:01.667
22793
22793
42593
answer