2013-06-30 19 views
0
$count = 0; 

$interpreter->addObserver(function(array $row) use (&$temperature) { 
    $count+=1; 

    if ($count < 3) <----- not liking this 
    { 

     return; 

    } 
    $temperature[] = array(
     'column1' => $row[16], 
     'column2' => $row[18], 
    ); 
}); 

我假設它是一個範圍問題,我無法從外部訪問計數但是我需要計算循環中的行數....想法?注意:未定義的變量:count line 53

+0

我很驚訝你得到這個權利了'$ temperature'但不是'$ count'。 – deceze

回答

3

您可以參考全球通過增加以下內容作爲函數的第一行:

global $count; 

但是,它必須是全球性的?您可以創建一個靜態變量,這將保留您的方法調用之間的值:

static $count = 0; 
+1

因爲他使用了匿名函數'use($ count)'會比'global'更好。 – deceze

+0

@deceze我沒有使用[匿名函數](http://php.net/manual/en/functions.anonymous.php)與PHP,但不應$ count通過參考傳遞給這個例子? '使用(&$ count,&$ temperature)' –

+0

是的,當然,在這種情況下它會是一個參考。 – deceze