PHP中的$this指的是當(dāng)前對(duì)象本身。在面向?qū)ο缶幊讨校3P枰L問當(dāng)前對(duì)象的成員變量或成員方法,這時(shí)就需要使用$this指針。下面我們具體來看看$this的用法和示例。
使用$this獲取成員變量
我們?cè)陬愔卸x了一個(gè)成員變量,當(dāng)需要在方法中使用該變量時(shí),需要使用$this指針來獲取該變量的值。例如:
class Person { private $name = ""; public function __construct($name) { $this->name = $name; } public function sayHello() { echo "Hello, my name is " . $this->name . "."; } } $person = new Person("Tom"); $person->sayHello();在上述示例中,我們定義了一個(gè)Person類,該類中有一個(gè)私有成員變量name。在構(gòu)造函數(shù)中使用$this指針來初始化該成員變量。在sayHello方法中,我們使用$this指針來獲取該成員變量的值,然后輸出一句話。 使用$this調(diào)用成員方法 當(dāng)需要在一個(gè)方法中調(diào)用同一個(gè)類中的另一個(gè)方法時(shí),也需要使用$this指針。例如:
class Person { private $name = ""; public function __construct($name) { $this->name = $name; } public function sayHello() { $this->introduce(); } private function introduce() { echo "Hello, my name is " . $this->name . "."; } } $person = new Person("Tom"); $person->sayHello();在上述示例中,我們?cè)趕ayHello方法中調(diào)用了introduce方法。在introduce方法中,我們使用$this指針來獲取name成員變量的值,然后輸出一句話。 使用$this調(diào)用父類構(gòu)造函數(shù)和成員方法 在子類中,如果需要調(diào)用父類的構(gòu)造函數(shù)或成員方法,也需要使用$this指針。例如:
class Person { private $name = ""; public function __construct($name) { $this->name = $name; } } class Student extends Person { private $grade = ""; public function __construct($name, $grade) { parent::__construct($name); $this->grade = $grade; } public function study() { parent::sayHello(); echo " I am in grade " . $this->grade . "."; } } $student = new Student("Tom", 5); $student->study();在上述示例中,我們定義了一個(gè)Person類和一個(gè)Student類,Student類繼承自Person類。在Student類中,我們需要在構(gòu)造函數(shù)中調(diào)用父類的構(gòu)造函數(shù),使用parent::__construct($name)來實(shí)現(xiàn)。在study方法中,我們需要調(diào)用父類的sayHello方法和輸出$grade成員變量的值,這時(shí)就需要使用parent::sayHello()和$this->grade。 總結(jié) $this指針是PHP面向?qū)ο缶幊讨械囊粋€(gè)重要概念,它可以讓我們方便地訪問當(dāng)前對(duì)象的成員變量和成員方法,也可以讓我們方便地調(diào)用父類的構(gòu)造函數(shù)和成員方法。在實(shí)際開發(fā)中,我們需要熟練地掌握$this指針的用法,才能寫出高質(zhì)量的面向?qū)ο蟠a。
上一篇php $this-$
下一篇php $this指針