2012-01-08 28 views
1

這個簡單的條件賦值(是的,不幸的是我喜歡它!)不起作用。 $x$i變量的範圍是什麼?有條件地分配,爲什麼它不起作用?

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

我:

注意:未定義的變量:X線88

+0

同樣的問題被更深入地在這裏找到答案: http://stackoverflow.com/questions/5467151/php-variable-assignment-inside-if-conditional – 2013-01-11 08:17:09

回答

5

我想這是運算符優先級,可以嘗試在分配到括號:

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

在優先級上可能是正確的,但實際上並沒有理由將X的集合放入條件中。 – James 2012-01-08 19:25:13

0

是第一個表達式應該賦值的$x
檢查$x定義:isset($x)

相關問題