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

Mary-Kate Olsen
发布: 2024-10-24 02:36:02
原创
389 人浏览过

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中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!