使用閉包的序列化異常
問題:
問題:在_initMailer 方法中_in使用閉包時,測試失敗,但出現以下異常:「不允許序列化'閉包'。」
原因:匿名函數無法序列化。在提供的程式碼中,閉包用作 Zend_Mail_Transport_File 傳輸的回呼參數。
解決方案 1:用常規函數取代閉包<code class="php">function emailCallback() { return 'ZendMail_' . microtime(true) . '.tmp'; } $callback = "emailCallback";</code>
將閉包替換為在 _initMailer 方法外部定義的常規函數。例如:
解2:透過陣列變數使用間接方法呼叫<code class="php">$callback = array($this, "aMethodInYourClass");</code>
以上是如何解決 Zend Mail Transport 中的閉包序列化異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!