首頁 >後端開發 >php教程 >如何解決 Zend Mailer 測試中的「不允許序列化『關閉』」異常?

如何解決 Zend Mailer 測試中的「不允許序列化『關閉』」異常?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-24 02:36:02485瀏覽

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