n番目の文字1つを取り出す
2007/09/26 | PHPの基本
phpでn番目の文字を取り出したいとき、ついさっきまでは以下のように記述するしかないと思っていた。
$str=’abcdefgh';
$char=substr($str,3,1);
こうすると$charには「d」が格納される(phpでは最初は1ではなく0から始まることに注意)。しかしもっと簡単な書き方があることを知った。
$str=’abcdefgh';
$char=$str{3};
なんと、こんな書き方でも同様の結果を得ることが出来る。マルチバイト系ではうまく動かないような気もするが(未検証)、これは簡単だ。多分関数を呼ばない分だけオーバーヘッドも少なく、処理速度も速いだろう。
少しだけ賢くなった。
2007/09/26 at 9:58 PM
配列にアクセスするような書き方でもいけますよ。
$char = $str[3];
とか。
2007/09/26 at 10:25 PM
むしろ波括弧はPHP6で廃止予定だから非推奨らしいです。