Refleksi: Panggil kaedah dengan parameter
Menggunakan refleksi untuk memanggil kaedah dengan parameter boleh menjadi rumit. Anda mungkin menghadapi ralat "objek tidak sepadan dengan jenis sasaran", terutamanya apabila cuba menghantar objek kepada kaedah dengan tandatangan jenis yang berbeza.
Untuk menyelesaikan masalah ini, kuncinya ialah memahami: apabila menggunakan refleksi untuk memanggil kaedah dengan parameter, parameter pertama sentiasa merupakan contoh kelas yang memanggil kaedah tersebut. Dalam kod anda, anda tersilap menggunakan "methodInfo" sebagai parameter pertama dan bukannya "classInstance".
Coretan kod yang betul hendaklah:
<code>result = methodInfo.Invoke(classInstance, parametersArray);</code>
Dengan membuat perubahan ini, anda memastikan bahawa parameter pertama ialah contoh kelas, membenarkan kaedah dipanggil dengan betul.
Ringkasnya, apabila menggunakan refleksi untuk memanggil kaedah dengan parameter, ingat untuk menggunakan contoh kelas sebagai parameter pertama, diikuti dengan tatasusunan parameter. Pembetulan ini harus menghapuskan ralat "Objek tidak sepadan dengan jenis sasaran" dan mendayakan permohonan kaedah yang berjaya.
Atas ialah kandungan terperinci Bagaimana Cara Menggunakan Kaedah dengan Parameter Menggunakan Refleksi dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!