在使用php編程時(shí),經(jīng)常會(huì)涉及到函數(shù)的調(diào)用。其中一個(gè)常用的函數(shù)是this函數(shù)。
this函數(shù)是php語言中一個(gè)非常常用的函數(shù)。它是一個(gè)用于獲取當(dāng)前對(duì)象的指針的關(guān)鍵字。當(dāng)在類定義中使用時(shí),this就指向當(dāng)前類的對(duì)象實(shí)例。this后需要使用箭頭符號(hào)->來指向類中的屬性或方法。
class Person { public $name; public function getName(){ return $this->name; } } $person = new Person(); $person->name = "John"; echo $person->getName(); // outputs "John"
在上面的例子中,我們首先定義了一個(gè)Person類,并創(chuàng)建了一個(gè)Person對(duì)象實(shí)例$person。接下來,我們給對(duì)象的$name屬性賦值"John",并使用this關(guān)鍵字中的箭頭符號(hào)->調(diào)用getName函數(shù)輸出結(jié)果。
注意,在類定義中,$this只能用于引用當(dāng)前類的成員函數(shù)或成員屬性。如果在類的函數(shù)外部使用,將會(huì)拋出一個(gè)致命錯(cuò)誤。
另外,this關(guān)鍵字還可以用于在類的函數(shù)內(nèi)部引用同名變量的值。
class Person { public $name; public function setName($name){ $this->name = $name; } } $person = new Person(); $person->setName("John"); echo $person->name; // outputs "John"
在上述代碼中,$name變量在setName函數(shù)中與this->name屬性同名,但通過$this關(guān)鍵字,我們可以引用到類中的屬性$name,而不是同名變量。
總結(jié)來說,this是一個(gè)能獲取當(dāng)前對(duì)象實(shí)例的指針的關(guān)鍵字。它常用于類定義中引用類中的成員函數(shù)或成員屬性,可以避免變量同名等問題。在使用過程中需要注意,$this只能在類的函數(shù)內(nèi)部使用。