[php] 文字列を含んだ数値の四則演算

More than 1 year has passed since last update.


Twitterで見かけたTweet


気になったので試した

下のコードを実行して見た

スクリーンショット 2018-05-07 16.10.34.png

結果はこうだ

スクリーンショット 2018-05-07 16.10.51.png


結論

どうもTwitterの内容は本当なようだった。


ネタバラシ

http://php.net/manual/ja/language.types.string.php#language.types.string.conversion


数値として文字列が評価された時、結果の値と型は次のように定義されます。

文字列の中に '.' や 'e'、'E' といった文字が含まれず、 数値が integer 型の範囲内 (PHP_INT_MAX で定義されています) におさまる場合は integer として評価されます。それ以外の場合は、すべて float として評価されます。

文字列の最初の部分により値が決まります。文字列が、 有効な数値データから始まる場合、この値が使用されます。その他の場合、 値は 0 (ゼロ) となります。有効な数値データは符号(オプション)の後に、 1 つ以上の数字 (オプションとして小数点を 1 つ含む)、 オプションとして指数部が続きます。指数部は 'e' または 'E' の後に 1 つ以上の数字が続く形式です。