WeavingBird1917 WeavingBird1917 - 1 month ago 5
PHP Question

Usage of comparison operator after assigning variable

I've seen comparison operators used straight after assigning values to variables in codes such as this:

($i = array_search($v, $b)) !== false // If $v is not in array, outputs false


Or something like this:

$n = 5 <= 5;
echo $n; // Outputs 1;


In the first example, does the comparison operator directly compare the value to array_search(...) or does it compare it to $i, since both of them are in brackets? Would it make a difference if there were no brackets around "$i = array_search(...)?

I've tried looking in the PHP manual on comparison operators, but it does not seem to mention using comparison operators in this way.

Also, in the second example, if there are no brackets, is the comparison operator comparing the value to 5 or to $n?

Could someone please link any documents or articles relating to the usage of comparison operators after assigning variables?

Answer

does the comparison operator directly compare the value to array_search(...) or does it compare it to $i

It assigns the value from array_search to $i first, and then evaluates a comparison to that value second.


In your example, array_search will return false on failure.

if( ($i = array_search($v, $b)) !== false ){}

Is totally equivalent to:

$i = array_search($v, $b);
if($i !== false){}

Or:

if( array_search($v, $b) !== false ){}

It's just a convenient shortcut to also assigning the value of $i for use later.

Comments