Home >Backend Development >PHP Tutorial >Some thoughts caused by php in_array function
Today I suddenly thought that the in_array function in PHP has a strange usage. Let’s take a look at this usage. Friends in need can simply refer to it. The code is as follows:
$a=array("1,2,3" , "4");
if(in_array(1,$a)){
echo "The condition is established";
}
This condition is indeed established. According to my thinking logic, the above condition This is only true when the value of parameter 1 is "1, 2, 3" and the sum is 4, but strangely it is true. Battlefield immediately tested the following situation, the code is as follows:
$a=array("a ,2,3","4");
if(in_array('a',$a)){
echo "The condition is not established";
}
This is not true, In the first test case, if parameter 1 is written as '1', the condition is not established. The conclusion is:
In PHP, if the first parameter is a number - a number without quotation marks, the second If an array parameter contains a string starting with that number, it will return a true value regardless of whether the first parameter is a complete element of the second parameter. In other words, the in_array function does not always follow my thinking logic. Does the entire element match, or do I not understand the data type clearly enough?
At the same time, I also found that if the first element of your array is 0, problems will also occur. See the following situation. The code is as follows:
$a=array(0, "m");
if(in_array('mc6',$a))
{
echo "=====";
}//Open source code phpfensi.com