【发布时间】:2011-03-18 18:24:51
【问题描述】:
我在一些帖子上看到过这个:
$num = "5";
if(((int)$num) < 4){ ...}
是否有理由将“5”转换为 int 或者说是一样好:
if($num < 4){ ...}
因为我已经用我的代码对其进行了测试:
echo $num + 4; //outputs 9
echo (int)$num + 4;//also outputs 9
更新: 我的问题是关于铸造的,以上只是一两个例子。
更新 2: 马上type juggling manual php
<?php
$foo = "0"; // $foo is string (ASCII 48)
$foo += 2; // $foo is now an integer (2)
$foo = $foo + 1.3; // $foo is now a float (3.3)
$foo = 5 + "10 Little Piggies"; // $foo is integer (15)
$foo = 5 + "10 Small Pigs"; // $foo is integer (15)
?>
^^^^为什么最后两件事会发生?
【问题讨论】:
-
关于您的更新,请继续阅读:如果上面的最后两个示例看起来很奇怪,请参阅php.net/manual/en/…(字符串转换为数字)。
-
@konforce 我明白了。但手册并不总是给出清晰的画面。我已经使用 php 很长时间了。而且我从不强制类型转换
-
我回滚了您的上次编辑,因为我认为您的问题有效。另外,我更新了我的问题来回答这些问题。
-
@Kevin - 好的。不知道我上次的编辑是否相关,所以我删除了它。
-
完全相关,因为它有助于消除您的困惑 :)