Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyelesaikan Pengecualian \"Siri \'Penutupan\' Tidak Dibenarkan\" dalam Ujian Zend Mailer?

Bagaimana untuk Menyelesaikan Pengecualian \"Siri \'Penutupan\' Tidak Dibenarkan\" dalam Ujian Zend Mailer?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-24 02:36:02390semak imbas

How to Resolve

Pengecualian: Pensirian 'Penutupan' Tidak Dibenarkan

Apabila menjalankan ujian yang menggunakan kaedah _initMailer() yang menyediakan Zend initMailer untuk aplikasi, pengecualian berikut ditemui:

Exception: Serialization of 'Closure' is not allowed

Pengecualian timbul daripada fungsi tanpa nama (penutupan) dalam kaedah:

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

Fungsi tanpa nama tidak boleh bersiri, memimpin kecuali.

Penyelesaian 1: Gantikan Penutupan dengan Fungsi Biasa

Ganti fungsi tanpa nama dengan fungsi biasa:

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

Penyelesaian 2: Panggilan Kaedah Tidak Langsung Menggunakan Pembolehubah Tatasusunan

Sebagai alternatif, anda boleh menggunakan pembolehubah tatasusunan untuk memanggil kaedah secara tidak langsung:

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

Ini membolehkan anda menentukan kaedah daripada contoh kelas tanpa masalah penyirian.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Pengecualian \"Siri \'Penutupan\' Tidak Dibenarkan\" dalam Ujian Zend Mailer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn