条件赋值,为什么它';It’不起作用


Assignment in conditional, why it's not working?

这个简单的条件赋值(是的,不幸的是我喜欢它!)不起作用。$x$i变量的作用域是什么?

if($x = $s->getXAxis() && ($i = array_search($x, $this->xAxis)) !== false) // 88
   $s->xAxis = $i;                                                         // 89

我得到了:

注意:未定义的变量:第88行的x。

我想这是运算符优先级,试着把赋值放在括号里:

if(($x = $s->getXAxis()) && ($i = array_search($x, $this->xAxis)) !== false)
   $s->xAxis = $i; 

第一个表达式应该为$x赋值吗
检查是否定义了$xisset($x)