Hanya ingin tahu, kapan ada kebutuhan untuk ini? Apakah mungkin membuat fungsi yang Anda tidak tahu namanya?
DisgruntledGoat
37
Satu kemungkinan penggunaan adalah mencatat eksekusi Anda. Jika Anda menulis "Saya memiliki kesalahan". FUNGSI ke file log atau sesuatu. Dengan cara ini, jika nama fungsi diubah, Anda tidak perlu khawatir tentang orang yang ingat untuk mengubah pesan log.
Brian Ramsay
1
Membutuhkan ini untuk masuk! terima kasih sudah bertanya :)
SublymeRick
2
Juga berguna jika Anda ingin menggunakan nama fungsi di dalam fungsi (untuk penggunaan lain). Ingin membuat tautan berdasarkan fungsi, dll. (Mis: function name1()gunakan lagi name1 di dalam), akan menghemat banyak waktu jika Anda memiliki templat yang sama untuk banyak fungsi.
Mafia
1
@DisgruntledGoat: berguna jika Anda membuat fungsi secara manual dan tidak ingin mengedit pesan kesalahan untuk setiap fungsi. Menambahkannya ke pesan kesalahan berarti Anda memiliki lebih sedikit pekerjaan.
FUNGSI berfungsi untuk fungsi non-kelas juga. Mencoba di PHP 7.0.8.
mvsagar
Cara yang sama, bagaimana cara mendapatkan nama kelas?
Kiran Reddy
2
@KiranReddy Ada konstan ajaib untuk itu juga: __CLASS__. Atau kamu bisa melakukannya get_class($this).
Sean the Bean
1
Mencoba di PHP> = 4
Nabi KAZ
98
Anda dapat menggunakan konstanta ajaib__METHOD__ (termasuk nama kelas) atau __FUNCTION__(hanya nama fungsi) tergantung pada apakah itu metode atau fungsi ... =)
Ini adalah sumber daya yang luar biasa intensif. Menggunakan FUNGSI atau METODE jauh lebih efisien. debug_backtrace () bagus jika Anda membutuhkan lebih dari sekedar nama fungsi.
Luke Cousins
2
Ini adalah praktik yang buruk untuk menggunakan debug_backtrace () untuk tujuan ini
Marcio Mazzucato
1
INI CARA YANG HANYA BENAR yang saya temukan !!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!! !!!!!!!!!!!!!! karena __FUNCTION__mengembalikan nama fungsi induk (ketika fungsi saat ini termasuk dalam fungsi induk)
Sementara cuplikan kode ini mungkin solusinya, termasuk penjelasan sangat membantu untuk meningkatkan kualitas posting Anda. Ingatlah bahwa Anda menjawab pertanyaan untuk pembaca di masa depan, dan orang-orang itu mungkin tidak tahu alasan untuk saran kode Anda.
function name1()
gunakan lagi name1 di dalam), akan menghemat banyak waktu jika Anda memiliki templat yang sama untuk banyak fungsi.Jawaban:
Cara yang akurat adalah dengan menggunakan
__FUNCTION__
konstanta sihir yang telah ditentukan sebelumnya .Contoh:
Hasil:
MethodA
.sumber
__CLASS__
. Atau kamu bisa melakukannyaget_class($this)
.Anda dapat menggunakan konstanta ajaib
__METHOD__
(termasuk nama kelas) atau__FUNCTION__
(hanya nama fungsi) tergantung pada apakah itu metode atau fungsi ... =)sumber
Jika Anda menggunakan PHP 5 Anda dapat mencoba ini:
sumber
__FUNCTION__
mengembalikan nama fungsi induk (ketika fungsi saat ini termasuk dalam fungsi induk)Hasil: "MethodA";
sumber