文字列中の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()関数を使いましょう。