2016-04-25 113 views
2

我在變量作用域中遇到困難。我有一個從多維數組中查找實驗室值的函數。我想通過實驗室的名稱並讓它查找它。然而,我傳遞給get_lab函數的$ lab無法訪問array_filter中使用的第二個函數。我在哪裏遇到範圍問題?php函數中的變量範圍

function get_lab($lab){ 
    $result = array_filter($labs_array, function($v) { 
     return $v[1] == $lab; 
    }); 
    print_r($result); 
} 

回答

3

你應該use條款聲明變量這樣

function get_lab($lab){ 
    $result = array_filter($labs_array, function($v) use ($lab) { 
     return $v[1] == $lab; 
    }); 
    print_r($result); 
} 

查看該產品的說明書anonymous functions

2

您需要$實驗室傳遞給內部函數..

一種方法是使用使用關鍵字

function get_lab($lab){ 
    $lab = $lab; 
    $result = array_filter($labs_array, function($v) use ($lab) { 
     return $v[1] == $lab; 
    }); 
    print_r($result); 
}