接受函数作为 PHP 中的参数

新手上路,请多包涵

我一直想知道是否可以在 PHP 中将函数作为参数传递。我想要类似于在 JavaScript 中编写以下代码时的内容:

 object.exampleMethod(function(){
    // some stuff to execute
});

我想要的是在 exampleMethod 的某处执行该函数。这在PHP中可能吗?

原文由 Cristian 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 325
2 个回答

如果您使用的是 PHP 5.3.0 或更高版本,这是可能的。

请参阅手册中的 匿名函数

在您的情况下,您将定义 exampleMethod 像这样:

 function exampleMethod($anonFunc) {
    //execute anonymous function
    $anonFunc();
}

原文由 zombat 发布,翻译遵循 CC BY-SA 2.5 许可协议

根据@zombat 的回答,最好先验证匿名函数:

 function exampleMethod($anonFunc) {
    //execute anonymous function
    if (is_callable($anonFunc)) {
        $anonFunc();
    }
}

或者从 PHP 5.4.0 开始验证参数类型:

 function exampleMethod(callable $anonFunc) {}

原文由 Nick Tsai 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题