Rumah > Artikel > pembangunan bahagian belakang > Bolehkah Anda Mengganti Fungsi dalam PHP?
Timbul persoalan, "Bolehkah anda menulis ganti fungsi dalam PHP dengan mengisytiharkannya semula, seperti dalam contoh ini?"
function ihatefooexamples(){ return "boo-foo!"; } if ($_GET['foolevel'] == 10){ function ihatefooexamples(){ return "really boo-foo"; } }
Walaupun pendekatan ini mungkin kelihatan logik, ia sebenarnya tidak menyebabkan fungsi ditulis ganti dalam PHP. Tiada cara langsung untuk mentakrifkan semula fungsi dengan pelaksanaan yang berbeza.
Keupayaan pengaturcaraan berorientasikan objek PHP menyediakan penyelesaian alternatif melalui polimorfisme. Dengan mentakrifkan antara muka dengan tandatangan kaedah biasa dan melaksanakan berbilang kelas yang melaksanakan antara muka ini, anda boleh menukar gelagat kaedah secara dinamik berdasarkan contoh kelas yang digunakan.
Pertimbangkan contoh ini:
interface Fooable { public function ihatefooexamples(); } class Foo implements Fooable { public function ihatefooexamples() { return "boo-foo!"; } } class FooBar implements Fooable { public function ihatefooexamples() { return "really boo-foo"; } } $foo = new Foo(); if (10 == $_GET['foolevel']) { $foo = new FooBar(); } echo $foo->ihatefooexamples();
Pendekatan ini membolehkan cara yang lebih dinamik dan fleksibel untuk menukar tingkah laku fungsi berdasarkan contoh objek dalam masa jalan.
Atas ialah kandungan terperinci Bolehkah Anda Mengganti Fungsi dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!