<?php
/ int|string
42 --> 42 / 正確に型が一致
"42" --> "42" / 正確に型が一致
new ObjectWithToString --> "Result of __toString()"
/ オブジェクトは int と互換性がないので、文字列にフォールバック
42.0 --> 42 / float は int と互換性がある
42.1 --> 42 / float は int と互換性がある
1e100 --> "1.0E+100" / int には大きすぎる float なので、文字列にフォールバック
INF --> "INF" / int には大きすぎる float なので、文字列にフォールバック
true --> 1 / bool は int と互換性がある
[] --> TypeError / 配列はint, string と互換性はない。
/ int|float|bool
"45" --> 45 / int の数値形式の文字列
"45.0" --> 45.0 / float の数値形式の文字列
"45X" --> true / 数値形式の文字列ではない。boolにフォールバック
"" --> false / 数値形式の文字列ではない。boolにフォールバック
"X" --> true / 数値形式の文字列ではない。boolにフォールバック
[] --> TypeError / 配列はint, float, bool と互換性はない。
?>