有条件的分配,为啥它不起作用?

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)

【讨论】:

以上是关于有条件的分配,为啥它不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

为啥此代码不起作用以及如何修复它?

浮动动作按钮!为啥它不起作用?

React-有条件地在 div 中应用 css 但它不起作用

字体问题..不知道为啥它不起作用?

尝试使用点符号在控制台中记录数据对象但它不起作用,为啥?

为啥它不起作用,控制台程序转换为 Windows Form C# [关闭]