String intval($var)=strval($var)返回true
给出的例子非常简单,所以我认为不需要任何解释。 我在文档中找不到任何可以解释这种行为的参考资料,而且我还找到了一些解决方法,因此您不必费心去查找它们(不过提前谢谢) 我只是想有人能解释一下。。。。。对我来说没有任何意义:String intval($var)=strval($var)返回true,string,int,String,Int,给出的例子非常简单,所以我认为不需要任何解释。 我在文档中找不到任何可以解释这种行为的参考资料,而且我还找到了一些解决方法,因此您不必费心去查找它们(不过提前谢谢) 我只是想有人能解释一下。。。。。对我来说没有任何意义: // comma separated IDs to later use in SQL statement $var = '10,20,30,40,743,102394'; $multi_intval = intval($var); // same with (int) $va
// 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字符串?我只是偶然发现了这个问题,寻找另一个答案,所以即使它很旧,我也会给出一个答案,以防其他人发现它 从php文档中:
如果您将数字与字符串进行比较,或者比较涉及数字字符串,那么每个字符串都将转换为一个数字
正因为如此,您的比较
intval($var)=strval($var)
被更改为类似intval($var)==intval(strval($var))
的内容,这当然是相等的(我不知道用什么语言将字符串更改为整数,以上只是视觉表示)。如果你真的需要知道它们是否相同,请使用==
一年后,我只是想说声谢谢,它已经被回答了,但我猜所有者删除了他的答案。。。事实上,我有一个答案要说,但它也被删除了,我猜管理员想让我用评论代替:)编辑:实际上2年后EHH,但你花了整整一年的时间来回答:D谢谢!