我见过在代码中给变量赋值后直接使用比较运算符,如:
($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
的值供以后使用。