在比较之前将2个字符串强制转换为int更好吗?

时间:2011-10-24 11:00:51

标签: php string casting int

$a = '1';
$b = '1';

// Method 1
if ($a == $b) { ... }

// Method 2
if ((int)$a == (int)$b) { ... }

哪种解决方案更好?我在这里考虑编程最佳实践,而不一定是性能。

3 个答案:

答案 0 :(得分:2)

您只需使用Identical运算符。

修改:现在我看,andre matos已经断言哪种方式最好。

答案 1 :(得分:0)

当使用'=='时,PHP会兼顾周围的类型,无论如何都要投射它们。因此,在比较它们之前,我没有看到将它们转换为整数的任何优势。

如果您正在寻找更强大的解决方案,可以将它们转换为整数,然后使用Identical('==='),它匹配相等和类型,而不是Equal('==')。< / p>

答案 2 :(得分:0)

echo 1 == '1'; # true
echo 1 === '1'; # false
echo '1' === '1'; # true
echo '1' == '1'; # true