PHP中的$this關鍵字是指向當前對象的指針,也可以稱為自引用(self-reference)。它用于在類的內部引用類的成員變量和方法。下面舉幾個例子來更好地理解:
class Cat { public $name; function meow() { echo "Meow! My name is " . $this->name; } } $cat1 = new Cat(); $cat1->name = "Tom"; $cat1->meow(); // Output: Meow! My name is Tom $cat2 = new Cat(); $cat2->name = "Fluffy"; $cat2->meow(); // Output: Meow! My name is Fluffy
在上面的例子中,$this->name引用了Cat類的$name成員變量,可以在實例化時賦值不同的值。另外,$this->meow() 中的$this關鍵字也可以引用同一個類的方法,如下所示:
class Dog { public $name; function bark() { echo "Woof! My name is " . $this->name; $this->chaseTail(); } function chaseTail() { echo " Chasing tail..."; } } $dog1 = new Dog(); $dog1->name = "Buddy"; $dog1->bark(); // Output: Woof! My name is Buddy Chasing tail...
在上面的例子中,$this->chaseTail() 調用了Dog類中的方法,使得bark()方法同時輸出Chasing tail....
使用$this關鍵字還可以讓父類和子類之間簡單地交互,例如:
class Animal { protected $hungry; function __construct() { $this->hungry = true; } function eat() { $this->hungry = false; } } class Panda extends Animal { function __construct() { parent::__construct(); } function isHungry() { return $this->hungry; } } $panda1 = new Panda(); echo $panda1->isHungry(); // Output: true $panda1->eat(); // The parent method is called here echo $panda1->isHungry(); // Output: false
在上面的例子中,子類Panda通過使用parent::__construct()調用了父類Animal中的構造函數,從而使得子類繼承了父類的成員變量和方法。這個例子也展示了PHP中如何使用protected訪問控制符來限制類的成員變量和方法的訪問范圍。
總結:$this關鍵字在PHP的面向對象編程中非常重要,它可以讓類的內部成員變量和方法相互引用,同時也方便了父類和子類之間的交互。
下一篇json打包封裝