如何解決 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學習者快速成長!