php - 我可以将其他参数传递给 PEAR_ERROR_CALLBACK 的处理程序吗?

标签 php error-handling pear

我正在处理涉及一些 PEAR 代码的异常处理,并且希望 (a) 编写我自己的错误处理程序并 (b) 传递更多的参数,而不仅仅是触发事件。或者,像这样:

...
$pear_thing->setErrorHandling(PEAR_ERROR_CALLBACK, 'my_handler', 'something else');
...

function my_handler($e, $other_arg) {
     ...
}

此代码不起作用(第二个参数永远不会传递给 my_handler ;有什么办法解决这个问题吗?

最佳答案

如果附加值是您在设置处理程序时将知道的,那么您可以执行 IEFE(立即执行函数表达式)

$handler = function ($otherArg) {
          return function($e) use ($otherArg){
              ....
          };
};

然后,当您绑定(bind)功能时,您可以执行此操作
$pear_thing->setErrorHandling(PEAR_ERROR_CALLBACK,$handler('something else')); 

在这种情况下,$handler 是一个函数,它返回一个关闭传递给 $handler 的参数的闭包。

关于php - 我可以将其他参数传递给 PEAR_ERROR_CALLBACK 的处理程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17115480/

相关文章:

php - MySQL 结果数组...

php - pear HTML_QuickForm2 : How to get the saved session container back in form

php - 如何运行 longlife 后台进程,linux 服务器

javascript - 如何通过表单发送裁剪后的图像

c# - System.NullReferenceException 未将对象引用设置为对象的实例

python - 未找到资源点。请使用NLTK下载器获取资源: >>> import nltk >>> nltk.下载('punkt')

xcode - ITMS-90683 : Missing Purpose String in Info. plist (NSCalendarsUsageDescription)

php - 获取 microsoft/windowsazure 包时 Composer 依赖项错误

php - 如何在代理后面使用 PEAR?

php - 链接应该导航到新页面,还是显示不同的 div?