Rumah > pembangunan bahagian belakang > tutorial php > PHP 5: `$this` lwn. `self` – Bila Perlu Menggunakan Setiap?

PHP 5: `$this` lwn. `self` – Bila Perlu Menggunakan Setiap?

Patricia Arquette
Lepaskan: 2024-12-20 06:34:10
asal
715 orang telah melayarinya

PHP 5: `$this` vs. `self` – When to Use Each?

Diri vs. $this: Bila dan Cara Menggunakan Setiap

Soalan:

Dalam PHP 5, bagaimanakah kata kunci "self" dan "$this" berbeza dalam penggunaannya? Bilakah setiap satunya harus digunakan dengan sewajarnya?

Jawapan:

Jawapan Ringkas:

Gunakan "$this" untuk merujuk pembolehubah dan kaedah contoh objek semasa. Gunakan "diri" untuk merujuk kepada pembolehubah dan kaedah statik kelas semasa.

Jawapan Penuh:

Ahli Bukan Statik lwn Statik:

  • "$this->member" mengakses pembolehubah ahli bukan statik dan kaedah khusus ke objek semasa.
  • "self::$member" mengakses pembolehubah ahli statik dan kaedah yang dikongsi oleh semua kejadian kelas.

Polymorphism:

  • "$this" boleh menunjukkan polimorfisme dengan memanggil kaedah yang ditakrifkan dalam terbitan kelas.
  • "diri" menyekat polimorfisme dan sentiasa memanggil kaedah yang ditakrifkan dalam kelas semasa.

Contoh (penggunaan yang betul):

class X {
    private $non_static_member = 1;
    private static $static_member = 2;

    function __construct() {
        echo $this->non_static_member . ' ' . self::$static_member;
    }
}

new X(); // Output: 1 2
Salin selepas log masuk

Contoh (salah penggunaan):

class X {
    private $non_static_member = 1;
    private static $static_member = 2;

    function __construct() {
        echo self::$non_static_member . ' ' . $this->static_member; // Incorrect usage
    }
}

new X(); // Error: Undefined properties
Salin selepas log masuk

Menindas Polimorfisme:

class X {
    function foo() {
        echo 'X::foo()';
    }

    function bar() {
        self::foo(); // Suppresses polymorphism
    }
}

class Y extends X {
    function foo() {
        echo 'Y::foo()';
    }
}

$x = new Y();
$x->bar(); // Output: X::foo()
Salin selepas log masuk

Ringkasan:

Gunakan "$ ini" untuk akses ahli bukan statik dan polimorfisme. Gunakan "diri" untuk akses ahli statik dan apabila anda perlu menyekat polimorfisme.

Atas ialah kandungan terperinci PHP 5: `$this` lwn. `self` – Bila Perlu Menggunakan Setiap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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