Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menyelesaikan Pengecualian Serialisasi dengan Penutupan dalam Zend Mail Transport?
Pengecualian Serialisasi dengan Penutupan
Masalah:
Apabila menggunakan penutupan dalam kaedah _initMailer, ujian gagal dengan pengecualian: "Siri 'Penutupan' tidak dibenarkan."
Punca:
Fungsi tanpa nama tidak boleh disirikan. Dalam kod yang disediakan, penutupan digunakan sebagai parameter panggil balik untuk pengangkutan Zend_Mail_Transport_File.
Penyelesaian 1: Gantikan Penutupan dengan Fungsi Biasa
Ganti penutupan dengan fungsi biasa yang ditakrifkan di luar kaedah _initMailer. Contohnya:
<code class="php">function emailCallback() { return 'ZendMail_' . microtime(true) . '.tmp'; } $callback = "emailCallback";</code>
Penyelesaian 2: Gunakan Panggilan Kaedah Tidak Langsung melalui Pembolehubah Tatasusunan
Sebagai alternatif, anda boleh menggunakan pembolehubah tatasusunan untuk secara tidak langsung memanggil kaedah dalam kelas anda sebagai panggilan balik. Rujuk dokumentasi Zend Mail untuk butiran lanjut:
<code class="php">$callback = array($this, "aMethodInYourClass");</code>
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Pengecualian Serialisasi dengan Penutupan dalam Zend Mail Transport?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!