为什么PHP in_array(0,[& # 039;一个# 039;& # 039;b # 039;, & # 039; c # 039;])返回为真实的

介绍

本篇文章为大家展示了为什么PHP in_array(0,(& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;])返回为真的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

<节> <节> <节> <节> <节> <节> <节> 0,问题背景

在具体PHP编码过程中,总会出现一些我们认为不可能的情况,如下几例:

 <代码> in_array(0,(& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;]),,//返回bool(真实),相当于数组中有0 
函数(0,(& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;))//返回int(0)相当于是第一个值的下标
0==& # 39; abc # 39;,,,,,,,,,,,//返回bool(真实),相当于等值

但是,直观上看,0并没有包含在[& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;]数组中,也不会等于& # 39;abc # 39;这个字符串。那怎么解释上述的返回结果呢?

<节> <节> <节> <节> <节> <节> <节> 1,类型转换

究其原因:<强>在数据比较前,PHP做了类型转换强。引用PHP官网关于“字符串转换为数字”解释如下:

 <代码>当评估一个字符串在数字环境下,得到的值和类型决定如下。

如果字符串不包含任何人物& # 39;强生# 39;& # 39;e # 39;,或& # 39;e # 39;和数值符合整数类型限制(PHP_INT_MAX所定义的),字符串将被评价为一个整数。在所有其他情况下,它将评估作为一个浮动。

的值是由最初的部分字符串。如果字符串开始有效的数值数据,这个
将所使用的值。否则,该值是0(零)。有效数字数据是一个可选的标志,其次是>上述内容就是为什么PHP in_array(0,(& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;])返回为真,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

为什么PHP in_array(0,[& # 039;一个# 039;& # 039;b # 039;, & # 039; c # 039;])返回为真实的