Saya tidak yakin apakah saya telah melakukan ini dengan benar.
Seperti yang saya pahami:
jika saya memiliki kelas foo dan bilah metode statis saya dapat mendaftarkannya sebagai callback dengan melewatkan array array("foo","bar")
sebagai nama fungsi.
Jika saya memiliki turunan sebuah kelas dalam $ foo dan ingin memanggil metode bar, saya meneruskan array array($foo,'bar')
.
Jika saya perlu mendaftarkan suatu tindakan di dalam kelas itu sendiri, apakah itu akan berhasil array($this,'bar')
?
Jawaban:
Ya itu berhasil.
$this
Documents mengacu pada contoh konkret yang diperlukan untukcallback. Persis seperti$foo
contoh yang Anda berikan. Hanya saja itu$this
sedikit lebih istimewa, tetapi pada dasarnya sama dan berfungsi dengan baik dengan panggilan balik di PHP.Tambahan:
Ya, Anda dapat melakukannya, untuk fungsi statis, Anda dapat menuliskannya sebagai string, bukan array :,
foo::bar
lihat Callbacks Docs . Mungkin berguna.sumber
Untuk metode statis, Anda juga dapat melakukan ini:
ketika yang berikut memberikan 'bar' konstanta kelas Tidak Terdefinisi :
contoh - saat menentukan $ control_callback untuk
wp_add_dashboard_widget
sumber