0

给定的例子非常简单,所以我认为不需要任何解释。我在文档中找不到任何可以解释这种行为的参考资料,而且我还为此找到了一些解决方法,所以你真的不需要费心去寻找它们(不过提前感谢)。

我真的很想如果 some1 可以解释这个.....对我来说没有任何意义:

// 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 字符串?

4

1 回答 1

0

我只是在寻找另一个答案时遇到了这个问题,所以即使它很旧,我也会给出答案,以防其他人遇到它。

这里的 php 文档: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))当然是相等的(我不知道语言使用什么将字符串更改为整数,以上只是视觉表示)。如果您真的需要知道它们是否相同,请使用===.

于 2014-08-21T14:07:36.090 回答