有条件的分配,为啥它不起作用?
Posted
技术标签:
【中文标题】有条件的分配,为啥它不起作用?【英文标题】:Assignment in conditional, why it's not working?有条件的分配,为什么它不起作用? 【发布时间】:2012-02-05 12:03:07 【问题描述】:这个简单的条件赋值(是的,不幸的是我喜欢它!)不起作用。 $x
和 $i
变量的作用域是什么?
if($x = $s->getXAxis() && ($i = array_search($x, $this->xAxis)) !== false) // 88
$s->xAxis = $i; // 89
我明白了:
注意:未定义的变量:第 88 行的 x。
【问题讨论】:
同样的问题在这里得到了更深入的回答:***.com/questions/5467151/… 【参考方案1】:我猜是运算符优先级,试着把赋值放在括号里:
if(($x = $s->getXAxis()) && ($i = array_search($x, $this->xAxis)) !== false)
$s->xAxis = $i;
【讨论】:
在优先级上可能是正确的,但实际上没有理由首先将 X 的集合放入条件中。【参考方案2】:第一个表达式是否应该为$x
赋值? 检查$x
是否已定义:isset($x)
【讨论】:
以上是关于有条件的分配,为啥它不起作用?的主要内容,如果未能解决你的问题,请参考以下文章