特定の文字へのアクセス
指定した1バイト分の抜き出し
先ほどは {}(波括弧)を使いましたが、現在は []が推奨のようです。
string型では、[]を使用することで、文字列から特定の文字を抜き出して表示させることもできます。
また []を使って、 $変数名[番号] のように指定すると、変数の中からその番号に対応する文字を表示してくれます。
具体的には以下のようにします。
<? $str = "ABCDEFG"; echo $str[0]."<br>"; //「A」を表示 echo $str[2]."<br>"; //「C」を表示 echo $str[6]."<br>"; //「G」を表示 ?>
マルチバイト文字の抜き出し
上記のコードでは代入した値から、{番号}で指定した位置の文字を 1バイト分抜き出しています。
そのため日本語などのマルチバイト文字は表示できなかったりします。
<? $str = "あいうえお"; echo $str[0]."<br>"; //「あ」を表示できない ?>
ブラウザから確認しても何も表示されません。
これは実は表示させる方法があります。
1バイトの指定では表示できませんが、3バイトを連続して指定してやれば表示できたりします。
<? $str = "あいうえお"; echo $str[0]; echo $str[1]; echo $str[2]; ?>
ブラウザから確認すると、「あ」という文字が表示されます。
数値と文字列の混同
数字を文字列型で代入する場合
数字を文字列型で扱いたい場合、シングルクォーテーションやダブルクォーテーションで数字を囲む必要があります。
以下では数字を文字列だと認識させて変数に代入しています。
実際に型が何になっているかを、gettypeの機能を使用して、表示させたいと思います。
<? $str = "123"; echo $str."<br>"; echo gettype($str)."<br>"; ?>
ブラウザから確認すると、123 は string型になっていることが分かります。
数値と文字列の代入
integer型の数値と string型の数字を計算した結果を変数に代入した場合、
string型の数字を内部で integerに変換してくれるので、
計算した結果を表示させることができます。
<?php $num = 4 + "10"; echo $num; echo gettype($num); ?>
ブラウザから確認してみると、14と表示されるので、文字列型が整数型に変換されて、
変数に代入されたことが分かります。
ひとまず今回はここまでで、次回は特殊な型である NULL型について記載したいと思います。