in_array 关于字符串的陷阱
1 <?php 2 3 $arr=array(0,1,2,3,4,5); 4 5 if(in_array('xxx',$arr)){ 6 echo 'in'; 7 }else{ 8 echo 'out'; 9 }
在字符串与含有数字的数组进行比较时,大家一定要注意了,雷还是很容易踩的,因为这个结果不一定就是你想要的。
假设要进行比较的变量为$a,数组为$b:
in_array 会把$a与$b进行一一比较,如 $a==$b[0] , 此时,当$a为字符串,而数组中有元素为数字时,php就会将$a数字化然后进行比较,当然结果就很可能会是错误的。
道理其实很简单,但在平常的工作中却很容易忽视。