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};

なんと、こんな書き方でも同様の結果を得ることが出来る。マルチバイト系ではうまく動かないような気もするが(未検証)、これは簡単だ。多分関数を呼ばない分だけオーバーヘッドも少なく、処理速度も速いだろう。
少しだけ賢くなった。

2件のコメント

  1. ryster :

    配列にアクセスするような書き方でもいけますよ。

    $char = $str[3];

    とか。

  2. MugeSo :

    むしろ波括弧はPHP6で廃止予定だから非推奨らしいです。

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net