因此PHP允许一些感觉有点奇怪的隐式转换,比如将标量值转换为对象
php > $t = 23;
php > $p = (object)$t;
php > var_dump($p);
php shell code:1:
class stdClass#2 (1) {
public $scalar =>
int(23)
}
或者经典陷阱“我在迭代检查中忘记了count()”:
$t = [1, 2, 3];
for ($x = 0; $x < $t; $x++) {
echo $x . ',';
if ($x > 5)
die();
}
(将1,2,3,4,5,6
输出$t
而非int
已投放到$x
(其中 工作,如果为空则为0,否则为1') ,而是将{{1}}转换为具有一个元素的数组。
我经常问自己为什么有人会认为这是一个好主意,所以我想知道:有没有人曾经有过一个真实的用例,这种铸造确实有意义或方便/有用?