首页  >  文章  >  后端开发  >  如何解决 Zend Mailer 测试中的“不允许序列化‘关闭’”异常?

如何解决 Zend Mailer 测试中的“不允许序列化‘关闭’”异常?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-24 02:36:02390浏览

How to Resolve

异常:不允许序列化“Closure”

当运行利用 _initMailer() 方法的测试时,该方法设置 Zend在应用程序的 initMailer 中,遇到以下异常:

Exception: Serialization of 'Closure' is not allowed

该异常是由方法内的匿名函数(闭包)引起的:

$callback = function () {
    return 'ZendMail_' . microtime(true) .'.tmp';
};

匿名函数无法序列化,导致

解决方案 1:用常规函数替换闭包

用常规函数替换匿名函数:

function emailCallback() {
    return 'ZendMail_' . microtime(true) . '.tmp';
}
$callback = "emailCallback" ;

解决方案 2:使用数组变量间接调用方法

或者,您可以使用数组变量来间接调用方法:

$callback = array($this, "aMethodInYourClass");

这允许您指定一个方法来自类实例,没有序列化问题。

以上是如何解决 Zend Mailer 测试中的“不允许序列化‘关闭’”异常?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn