這個簡單的條件賦值(是的,不幸的是我喜歡它!)不起作用。 $x
和$i
變量的範圍是什麼?有條件地分配,爲什麼它不起作用?
if($x = $s->getXAxis() && ($i = array_search($x, $this->xAxis)) !== false) // 88
$s->xAxis = $i; // 89
我:
注意:未定義的變量:X線88
這個簡單的條件賦值(是的,不幸的是我喜歡它!)不起作用。 $x
和$i
變量的範圍是什麼?有條件地分配,爲什麼它不起作用?
if($x = $s->getXAxis() && ($i = array_search($x, $this->xAxis)) !== false) // 88
$s->xAxis = $i; // 89
我:
注意:未定義的變量:X線88
我想這是運算符優先級,可以嘗試在分配到括號:
if(($x = $s->getXAxis()) && ($i = array_search($x, $this->xAxis)) !== false)
$s->xAxis = $i;
在優先級上可能是正確的,但實際上並沒有理由將X的集合放入條件中。 – James 2012-01-08 19:25:13
是第一個表達式應該賦值的$x
?
檢查$x
定義:isset($x)
同樣的問題被更深入地在這裏找到答案: http://stackoverflow.com/questions/5467151/php-variable-assignment-inside-if-conditional – 2013-01-11 08:17:09