Dalam PHP, tidak mungkin untuk menulis ganti fungsi mengikut cara yang ditentukan oleh soalan asal. Walau bagaimanapun, terdapat cara alternatif untuk mencapai hasil yang serupa.
Pendekatan Asal:
function ihatefooexamples() { return "boo-foo!"; }; // Redeclaration if ($_GET['foolevel'] == 10) { function ihatefooexamples() { return "really boo-foo"; }; };
Pendekatan ini tidak boleh dilaksanakan kerana PHP tidak membenarkan mentakrifkan semula fungsi dengan fungsi yang sama nama dan parameter.
Pendekatan Alternatif Menggunakan OOP:
Polimorfisme melalui pengaturcaraan berorientasikan objek (OOP) ialah penyelesaian yang lebih baik.
Buat antara muka Fooable dan dua kelas Foo dan FooBar yang melaksanakannya.
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"; } }
Segera kelas yang sesuai berdasarkan foolevel dan panggil kaedah ihatefooeexamples.
$foo = new Foo(); if (10 == $_GET['foolevel']) { $foo = new FooBar(); } echo $foo->ihatefooexamples();
Dengan menggunakan pendekatan OOP ini, kami boleh menukar gelagat fungsi ihatefooeexamps secara dinamik berdasarkan parameter input sambil mengekalkan ketekalan nama fungsi.
Atas ialah kandungan terperinci Bolehkah saya Mengganti Fungsi dalam PHP Seperti Ini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!