Menentukan Nama Fungsi Panggilan dalam PHP
Tidak seperti bahasa seperti Java atau C , PHP tidak menyediakan fungsi terbina dalam yang direka khusus untuk mendapatkan semula nama fungsi atau kaedah panggilan. Walau bagaimanapun, terdapat cara untuk mencapai ini menggunakan fungsi debug_backtrace().
Menggunakan debug_backtrace()
Fungsi debug_backtrace() mengembalikan tatasusunan yang mengandungi maklumat tentang panggilan fungsi semasa dan semua induk. Untuk mendapatkan nama fungsi panggilan, akses item kedua dalam tatasusunan yang dikembalikan oleh debug_backtrace(). Ini akan memberikan maklumat tentang fungsi yang dipanggil fungsi semasa.
Contoh:
echo debug_backtrace()[1]['function'];
Kod ini akan mengeluarkan nama fungsi panggilan.
Mengoptimumkan debug_backtrace()
Untuk mengoptimumkan prestasi, anda boleh hadkan bilangan bingkai tindanan yang dikembalikan dan tinggalkan maklumat yang tidak diperlukan. Sebagai contoh, kod berikut hanya mengembalikan nama fungsi dan meninggalkan kedua-dua objek dan indeks args:
echo debug_backtrace(!DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS,2)[1]['function'];
Mendapatkan semula Kelas Kaedah Panggilan
Untuk menentukan kelas daripada kaedah panggilan, anda mesti memeriksa indeks objek dalam tatasusunan debug_backtrace(). Indeks ini mengandungi tatasusunan dengan maklumat tentang objek yang kaedah itu dipanggil.
Contoh:
$className = debug_backtrace()[1]['object']['class'];
Dengan menggabungkan teknik ini, anda boleh mendapatkan kedua-dua nama dan kelas fungsi atau kaedah panggilan dalam PHP.
Atas ialah kandungan terperinci Bagaimana untuk Menentukan Nama Fungsi Panggilan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!