在php編程中,我們經常會使用$this關鍵字,它是一個指向當前對象實例的引用,可以訪問當前對象實例所擁有的成員屬性和成員函數。那么$this具體是如何使用的呢?下面我們來詳細介紹。
首先,我們假設現在有一個類class Person,有一個成員屬性$name以及一個成員函數getName(),代碼如下:
class Person{
private $name; //成員屬性$name
public function getName(){
return $this->name; //返回$name的值
}
}
在上面的函數中,$this->name就是引用了當前對象實例的成員屬性$name,因此返回了對象實例的$name屬性的值。
接下來,我們來看一個更加復雜的例子。現在有一個類class Student,有成員屬性$grade和$score,以及兩個成員函數getGrade()和getScore(),代碼如下:
class Student{
private $grade; //成員屬性$grade
private $score; //成員屬性$score
public function getGrade(){
return $this->grade; //返回$grade的值
}
public function getScore(){
return $this->score; //返回$score的值
}
}
在上面的函數中,$this->grade就是引用了當前對象實例的成員屬性$grade,因此返回了對象實例的$grade屬性的值。同樣,$this->score也是引用了當前對象實例的成員屬性$score,返回了對象實例的$score屬性的值。
除了訪問成員屬性,$this還可以用于調用成員函數。例如,現在有一個類class Student2,有成員屬性$grade和$score,以及兩個成員函數getGrade()和getScore(),代碼如下:
class Student2{
private $grade; //成員屬性$grade
private $score; //成員屬性$score
public function __construct($grade,$score){
$this->grade = $grade;
$this->score = $score;
}
public function getGradeAndScore(){
return $this->getGrade() . ':' . $this->getScore();
}
private function getGrade(){
return $this->grade;
}
private function getScore(){
return $this->score;
}
}
在上面的函數中,我們在成員函數getGradeAndScore()中調用了$this->getGrade()和$this->getScore(),從而得到了當前對象實例的$grade和$score屬性的值并返回。
總之,$this關鍵字是一個很有用的指針,在php編程中可以非常方便地訪問對象實例的成員屬性和成員函數,代碼更加簡潔明了。因此,學好$this的使用對編程非常有益。