赋值变量后比较运算符的使用


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比较?

谁能链接任何文档或文章有关使用比较运算符赋值变量后?

比较运算符是直接将值与array_search(...)比较还是与$i比较

首先将array_search中的值赋给$i,然后再对该值进行比较。


在您的示例中,array_search失败时将返回false

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

完全等价于:

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

或:

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

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