0、 问题背景
在具体PHP编码过程中,总会出现一些我们认为不可能的情况,如下几例:
in_array(0, ['a', 'b', 'c']) // 返回bool(true),相当于数组中有0...array_search(0, ['a', 'b', 'c']) // 返回int(0),相当于是第一个值的下标
0 == 'abc' // 返回bool(true...使用严格比较,如下所示:
in_array(0, ['a', 'b', 'c'], true) // 返回bool(false)
array_search(0, ['a', 'b', 'c']...4、 数组中有true
另一个看起来比较奇怪的现象
in_array('a', [true, 'b', 'c']) // 返回bool(true),相当于数组里面有'a'
array_search...('a', [true, 'b', 'c']) // 返回int(0),相当于找到了字符串'a'
总结
PHP语言本身是弱类型语言,为了便于应用处理,会做一些类型转换操作。