2012-06-08 37 views
0
數組

我找不到任何回答我的問題所以在這裏,它是:如何調用PHP函數,在使用的foreach

我需要有一個foreach循環把數組內的各功能並運行每個並檢查它是否返回true,足夠簡單。就像這樣:

$array_name = array(function1(),function2(),function3()); 

foreach($array_name as &$value) { 
    /* run each function */ 
    /* checks if it returns true */ 
} 

這可能是很容易我只是沒有看到它,但我不能找到如何正確地實現這個任何明確的文檔。

回答

1
$array_name = array('function1', 'function2', 'function3'); 

foreach($array_name as $value) { 
    if($value()) { 
     // do stuff if the function returned a true-ish value 
    } 
} 

調用函數的另一個選項是call_user_func($value)

+0

'if($ value())'應該是'if(function_exists())'。 – flowfree

+0

他想調用該函數,而不是檢查它是否存在。在這種情況下,它將是'function_exists'或'is_callable'。 – ThiefMaster

1

試試:

$array_name = array('function1','function2','function3'); 

foreach($array_name as &$value) { 
    if(function_exists($value) && ($value())) { 
    //function exists and it returns true 
    } 
} 
0

嘗試從採取的事情:http://php.net/manual/en/functions.variable-functions.php

foreach($functionName as $arg) { 
    $arg(); 
} 

但是當你問題包含:

$ ARRAY_NAME =陣列(功能1()函數2 (),功能3());

確保在您的數組中使用了「function1()」。所以我們可以有:

foreach($functionName as $arg) { 
    $check = $arg; 
    if($check != false){ 
    //Do stuff here 
    }else{ 
    //Do stuff here 
    } 
}