是否可以从数组内部执行匿名函数(也在数组内部定义)?
return [
//execute?
function() {
//logic
}
];
还是我应该在外面定义它,然后才称之为它?
从技术上讲,您可以将函数括在括号中,并像这样调用它:
return [
(function() { return 42; })()
];
与相同
return [
42
];
然而,你为什么要这样做?这只会降低代码的可读性。最好只是有一个单独的变量来保存闭包,并根据需要调用它。
您也可以使用call_user_func
函数来实现这一点:
function test(){
return [
call_user_func(function(){
return "I was executed inside array! wow!";
})
];
}
print_r(test());
// the output:
Array
(
[0] => I was executed inside array! wow!
)
试试这个:
return [
call_user_func(function(){
// logic executed
})
];