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:
Polymorphism:
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
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
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()
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!