Rumah > pembangunan bahagian belakang > tutorial php > Bolehkah saya Mengganti Fungsi dalam PHP Seperti Ini?

Bolehkah saya Mengganti Fungsi dalam PHP Seperti Ini?

Barbara Streisand
Lepaskan: 2024-11-16 20:07:03
asal
1042 orang telah melayarinya

Can I Overwrite a Function in PHP Like This?

Menulis Ganti Fungsi dalam PHP: Satu Panduan

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";
  };
};
Salin selepas log masuk

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";
    }
}
Salin selepas log masuk

Segera kelas yang sesuai berdasarkan foolevel dan panggil kaedah ihatefooeexamples.

$foo = new Foo();

if (10 == $_GET['foolevel']) {
    $foo = new FooBar();
}

echo $foo->ihatefooexamples();
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan