動的型付なので、文字列でも計算時に良かれを図ってくれるのは違和感のないところだったのだけれど、
<?php echo '-1hoge' + 100;
これで99となるのは知らなかった。先頭から数字と読めるところまでは解釈して後の文字列は切り捨てるみたい。なので、
<?php echo 'hoge100' + 100;
これは200ではなく100のまま。うーん、文字列結合なら.を使うから問題はないのかな。PHPでも流石に型キャストエラーになるのかと思っていた。
ちなみに
<?php echo 'hoge' + 'hoge';
だと0となる。つまり、
<?php echo 100 / 'hoge';
これだとゼロ除算エラーに。。。
なんとなく気持ち悪いけれど、良いことなのか悪いことなのか、いまいちピンとこない。
[追記]
PHP: 文字列#文字列の変換 – Manual
なるほど。仕様としてそのようにしているなら、そういうものということか。