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!