$this是PHP中真正神奇的變量之一,它允許將當(dāng)前對(duì)象作為變量引用并引用它的屬性和方法。當(dāng)開發(fā)人員希望使用類中的任何屬性或方法時(shí),都可以使用$this來引用。
例如,假設(shè)有一個(gè)名為Person的類,其中有名為$name的屬性和一個(gè)sayHello的方法。要引用$name屬性,可以使用$this->name,要調(diào)用sayHello方法,可以使用$this->sayHello()。以下是一個(gè)具體的示例,演示了如何使用$this:
```
class Person {
public $name;
public function sayHello(){
echo "Hello, my name is ".$this->name;
}
}
$person1 = new Person();
$person1->name = 'John';
$person1->sayHello();
```
在上面的例子中,我們首先定義了一個(gè)Person類,并聲明了一個(gè)名為$name的公共屬性和一個(gè)sayHello方法。在創(chuàng)建實(shí)例后,我們使用$person1->name來設(shè)置屬性的值, 然后通過類的方法調(diào)用,使用$this來訪問該屬性來輸出結(jié)果,最終輸出結(jié)果是:“Hello, my name is John”。
$this還可以用于引用另一個(gè)對(duì)象的屬性和方法。例如,假設(shè)有兩個(gè)名為Person和Employee的類, Employee類擴(kuò)展Person類,具有名為$salary的屬性,我們想要從Employee類的方法中訪問Person類的sayHello方法并輸出結(jié)果。這可以使用以下代碼實(shí)現(xiàn):
```
class Employee extends Person{
public $salary;
public function sayHello(){
parent::sayHello();
echo ", I am also an employee.";
}
public function displaySalary(){
echo "My salary is ".$this->salary;
}
}
$employee1 = new Employee();
$employee1->name = 'Jane';
$employee1->salary = 50000;
$employee1->sayHello();
$employee1->displaySalary();
```
在上面的例子中,我們首先定義了Employee類,該類擴(kuò)展了Person類,并聲明了一個(gè)名為$salary的屬性和一個(gè)名為displaySalary的方法。在創(chuàng)建實(shí)例后,我們使用$employee1->name和$employee1->salary屬性來設(shè)置兩個(gè)值,并分別調(diào)用Employee類和Person類的方法來輸出結(jié)果,最終輸出結(jié)果是:“Hello, my name is Jane, I am also an employee. My salary is 50000”。
總之,在PHP中,使用$this是訪問屬性和方法的主要方式之一。無論是從類內(nèi)部還是外部引用,它都是非常有用的工具。通過$this,我們可以輕松地引用當(dāng)前對(duì)象的任何屬性和方法,以實(shí)現(xiàn)更加靈活的編程。
上一篇php cpu高