PHPの暗黙の型変換

こんばんは、ちょっと触らないと簡単に文法を忘れるしょうたんです。
今回は「あれ?どうだったっけ」となりやすく、その都度試行して確認しがちな型変換について書きたいと思います。JavaやObjective-Cでは型を当然意識しますが、幸か不幸か意識しないPHPの型変換はあまり詳細を覚える気になれません。なので今回はメモ代わりにPHPの型変換の特徴を書き出したいと思います。

以下が普通の型変換です。(C言語と一緒)
$bar = (boolean) $foo;

文字列にキャスト(これはあまり見かけませんね)
$str = “$foo”;

NULLへのキャスト(あまり見かけない書き方ですね)
$var_unset = (unset) $var;

バイナリ文字列にキャスト(僕は使う事はないと思います)
$binary = b”binary string”;

整数として扱われる文字列の例(答えは15になります、よくこれに頼ってコーディングしてしまいます)
$foo = 5 + “10″;

小数として扱われる文字列の例(答えは15.5になります、floatの場合です)
$foo = 5 + “10.5″;

PHPマニュアルには以下のようにあります、と言うか意外とはっきり知らないもんですよね(僕だけですかねw)

<文字列の数値への変換 >
文字列の中に ‘.’ や ‘e’、’E’ といった文字が含まれず、 数値が integer 型の範囲内 (PHP_INT_MAX で定義されています) におさまる場合は integer として評価されます。それ以外の場合は、すべて float として評価されます。
文字列の最初の部分により値が決まります。文字列が、 有効な数値データから始まる場合、この値が使用されます。その他の場合、 値は 0 (ゼロ) となります。有効な数値データは符号(オプション)の後に、 1 つ以上の数字 (オプションとして小数点を 1 つ含む)、 オプションとして指数部が続きます。指数部は ‘e’ または ‘E’ の後に 1 つ以上の数字が続く形式です。

いやはや特殊な書き方のキャストがあるもんです、いざ見かけると面食らうかもしれません。明示的に(array)や(object)はよく使うと思いますが、意図せず型変換されるとしてfloatには要注意ですね。

以上ですwお疲れ様でした。