赋值后比较运算符的使用

Usage of comparison operator after assigning variable

我见过在代码中为变量赋值后直接使用比较运算符,例如:

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

或者像这样:

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

在第一个示例中,比较运算符是直接将值与 array_search(...) 进行比较,还是将其与 $i 进行比较,因为它们都在括号中?如果 "$i = array_search(...) 周围没有括号会有所不同吗?

我试过查看有关比较运算符的 PHP 手册,但它似乎没有提到以这种方式使用比较运算符。

另外,在第二个例子中,如果没有括号,比较运算符是将值与 5 还是与 $n 进行比较?

有人可以link任何关于在分配变量后使用比较运算符的文档或文章吗?

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

它首先将 array_search 的值分配给 $i,然后评估与该值的比较。


在您的示例中,array_search 将 return false 失败。

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

完全等同于:

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

或者:

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

这只是一个方便的快捷方式,也可以分配 $i 的值供以后使用。