2 回答
TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
匿名函數(shù)和變量函數(shù)應(yīng)該是您正在尋找的:
匿名函數(shù),也稱為閉包,允許創(chuàng)建沒有指定名稱的函數(shù)。它們作為回調(diào)參數(shù)的值最有用,但它們還有許多其他用途。
匿名函數(shù)使用 Closure 類實(shí)現(xiàn)
還有一個(gè)代碼示例:
<?php
$greet = function($name)
{
printf("Hello %s\r\n", $name);
};
$greet('World');
$greet('PHP');
?>
還有一個(gè)代碼示例,為了完整起見,關(guān)于如何將函數(shù)名作為參數(shù)傳遞,并在后面調(diào)用它:
<?php
function here() {
print 'here';
}
function dynamo($name) {
$name();
}
//Will work
dynamo('here');
//Will fail
dynamo('not_here');
TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
所以隨著對(duì)匿名函數(shù)的理解(感謝Lucas Meine),我發(fā)現(xiàn)你可以直接執(zhí)行一個(gè)函數(shù),方法是用括號(hào)括起來(lái),后面跟著參數(shù)括號(hào),這取決于你是否想給低級(jí)函數(shù)一些主要上下文之外的變量。
在以下所有示例中,輸出var_dump為42。
沒有可變參數(shù)的例子
// 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;
})());
帶有可變參數(shù)的示例
$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 關(guān)注
- 235 瀏覽
添加回答
舉報(bào)
