PHPの文字列・数値の計算結果

動的型付なので、文字列でも計算時に良かれを図ってくれるのは違和感のないところだったのだけれど、

<?php
echo '-1hoge' + 100;

これで99となるのは知らなかった。先頭から数字と読めるところまでは解釈して後の文字列は切り捨てるみたい。なので、

<?php
echo 'hoge100' + 100;

これは200ではなく100のまま。うーん、文字列結合なら.を使うから問題はないのかな。PHPでも流石に型キャストエラーになるのかと思っていた。
ちなみに

<?php
echo 'hoge' + 'hoge';

だと0となる。つまり、

<?php
echo 100 / 'hoge';

これだとゼロ除算エラーに。。。
なんとなく気持ち悪いけれど、良いことなのか悪いことなのか、いまいちピンとこない。

[追記]
PHP: 文字列#文字列の変換 – Manual
なるほど。仕様としてそのようにしているなら、そういうものということか。

コメントする

メールアドレスが公開されることはありません。