是否可以从数组内部执行匿名函数(也在数组中定义)?
return [
//execute?
function() {
//logic
}
];
或者我应该在外面定义它,然后再调用它?
答案 0 :(得分:3)
从技术上讲,您可以将函数括在括号中并像这样调用它:
return [
(function() { return 42; })()
];
与
相同return [
42
];
但是,你为什么要这样做?它只会使代码的可读性降低。简单地有一个单独的变量来保存闭包并根据需要调用它会更好。
答案 1 :(得分:1)
您也可以使用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!
)
答案 2 :(得分:1)
试试这个:
return [
call_user_func(function(){
// logic executed
})
];