另外,我们在 控制结构比较两个数值是否一直的时候,也应该尽量使用 === 来代替 ==(当然,这个也根据具体的业务逻辑选用比较合适的)。
小弟来解释下 为什么
var_dump(in_array(0, array('s' ));
这句话的结果是bool(true)。
因为in_array会将0 和's' 进行比较,0是number类型,'s'是string类型,根据php manual 中“Comparison Operators” 一章的说明可知,number 和string进行
比较的时候,会先将string类型首先转化为number,然后再进行比较操作。 's'转化为number的结果为0,而0 == 0 的结果是true,所以in_array(0, array('s', 'ss'))的结果也是true
如果把in_array 的第三个参数strict设置为 true,比较的时候 就会判断值和类型是否都相当。如果都相当的话,才会返回true,否则返回false.
仅此为记。
相关文章
- php不使用copy()函数复制文件的方法
- PHP 错误与异常 笔记与总结(11 )register_shutdown_function() 函数的使用
- php中iconv函数使用方法 php 字符集转换 GBK 转 UTF-8
- php使用function_exists判断函数可用的方法
- php中的echo,json_decode,json_encode常用函数使用注意事项
- execvp php-fpm reload使用的函数
- PHP读取文件函数fread,fgets,fgetc,file_get_contents和file函数的使用总结
- C++——构造函数的使用注意事项及static用法
- php回调函数的使用
- php预定义变量,超全局变量,魔术方法,特殊函数变量使用