【发布时间】:2012-03-23 09:36:08
【问题描述】:
有没有办法将变量传递给 PHP 中的 set_exception_handler() 方法?我需要这样的东西:
class Clazz {
public /* static */ function foo() {
set_exception_handler(array('Clazz', 'callback'), $var); // I need to pass $var
// or this in non-static context
$that = $this;
set_exception_handler(array($that, 'callback'), $var); // I need to pass $var
}
public static function callback($exception, $var) {
// process $exception using $var
}
}
【问题讨论】:
-
为什么不将 Exception 类扩展为可以取出这些变量的类?比如
new myException(...,...,$var),然后在处理程序中$e->getVar() -
我在 foo() 方法中调用了一些库。它们中的代码会引发异常,我无法更改它。既不重新定义异常,也不避免它们。
-
使用 lambda 函数怎么样?
-
是的,我需要这样的东西。但是我该如何使用它呢?我在手册页中没有找到使用 set_exception_handler 执行此操作的任何选项。
-
能否将标题更改为更能代表实际问题的内容?这相当具有误导性。
标签: php variables exception-handling callback closures