给出的例子非常简单,所以我认为它不需要任何解释。 我找不到任何可以解释这种行为的文档的参考资料,我也发现了一些相关的工作原理,所以你真的不需要费心去寻找它们(尽管提前感谢)。
我真的很想,如果有人可以解释这个.....对我来说没有任何意义:
// comma separated IDs to later use in SQL statement
$var = '10,20,30,40,743,102394';
$multi_intval = intval($var); // same with (int) $var
$multi_string = strval($var); // same with (string) $var
var_dump($multi_intval, $multi_string, $multi_intval == $multi_string);
// result
int(10) string(22) "10,20,30,40,743,102394" bool(true)
10如何等于22个strlen字符串?
答案 0 :(得分:0)
我刚试过这个寻找另一个答案,所以即使它已经老了,我会给出一个答案,以防其他人碰到它。
来自php docs here:If you compare a number with a string or the comparison involves numerical strings, then each string is converted to a number
因此你的比较intval($var) == strval($var)
改为intval($var) == intval(strval($var))
,当然是相等的(我不知道用什么语言将字符串改为整数,上面是只是视觉表现)。如果您确实需要知道它们是否相同,请使用===
。