2 回答

TA貢獻1874條經驗 獲得超12個贊
匿名函數,也稱為閉包,允許創建沒有指定名稱的函數。它們作為回調參數的值最有用,但它們還有許多其他用途。
匿名函數使用 Closure 類實現
還有一個代碼示例:
<?php
$greet = function($name)
{
printf("Hello %s\r\n", $name);
};
$greet('World');
$greet('PHP');
?>
還有一個代碼示例,為了完整起見,關于如何將函數名作為參數傳遞,并在后面調用它:
<?php
function here() {
print 'here';
}
function dynamo($name) {
$name();
}
//Will work
dynamo('here');
//Will fail
dynamo('not_here');

TA貢獻1809條經驗 獲得超8個贊
所以隨著對匿名函數的理解(感謝Lucas Meine),我發現你可以直接執行一個函數,方法是用括號括起來,后面跟著參數括號,這取決于你是否想給低級函數一些主要上下文之外的變量。
在以下所有示例中,輸出var_dump為42。
沒有可變參數的例子
// the function that should later be called
function myFunction($test){
var_dump($test);
}
// function call with a executed function as parameter
myFunction((function(){
return 42;
})());
帶有可變參數的示例
$someVar = 42;
function myFunction($test){
var_dump($test);
}
myFunction((function($tmp){
return $tmp;
})($someVar));
或與use聲明
$someVar = 42;
function myFunction($test){
var_dump($test);
}
myFunction((function() use ($someVar){
return $someVar;
})());
- 2 回答
- 0 關注
- 219 瀏覽
添加回答
舉報