ありがとう。また会おう。

ゆるいかんじで。かたのちからぬいて。やってます。

文字列中のn文字目にアクセスする方法

例えば、「ABCDEFG」という文字列の中の「D」1文字を取り出したい時。
わざわざsubstr()関数をつかわなくても

<?php
    $string = 'ABCDEFG';
    echo $string[3];
?>

って書き方ができるんですが。(可読性はちょと微妙だけど)


ここでふと、「てか、この方法って定数でもできるのか?」と思い立ち、やってみた。

<?php
    define('TEST_STRING', 'ABCDEFG');
    echo TEST_STRING[3];
    //結果・・・Perse Error
?>

ち〜ん。
やっぱそうですよね。そんな気はしたけど。残念。


ちなみに当然ですが

<?php
    define('TEST_STRING', 'ABCDEFG');
    echo substr(TEST_STRING, 3, 1);
?>

とすればOKです。


ただし、ブラケット[ ]で指定する場合も同じことがいえるんですが、文字列中にマルチバイトが入る可能性がある場合は要注意。
その場合は素直にmb_substr()関数を使いましょう。