In addition, when we control the structure to compare whether two values are consistent, we should also try to use === instead of == (of course, this should also be selected according to the specific business logic).
Let me explain why
var_dump(in_array(0, array('s' ));
The result of this sentence is bool(true).
Because in_array will compare 0 and 's', 0 is a number type, and 's' is a string type. According to the instructions in the "Comparison Operators" chapter in the php manual, number and string are compared
At this time, the string type will be converted to number first, and then the comparison operation will be performed. The result of converting 's' to number is 0, and the result of 0 == 0 is true, so in_array(0, array('s', The result of 'ss')) is also true
If the third parameter strict of in_array is set to true, it will be judged whether the values and types are equivalent during comparison. If they are equivalent, true will be returned. , otherwise it returns false.
This is just for note.