在PHP 語言中,self 和this 都用於訪問類中的屬性和方法,但它們適用的場景和含義有所不同。
self 是一個特殊的標識符,代表當前類本身,常用於訪問類中的靜態屬性和靜態方法。值得注意的是,PHP 中對self 的大小寫不敏感,Self、SELF 或self 都可以。
this 是一個指向當前對象實例的變量,主要用來訪問對象的非靜態屬性和非靜態方法。只有在類的方法內部,this 才能被有效使用。
以下示例定義了一個名為Foo 的類,包含一個靜態屬性和靜態方法,演示瞭如何使用self 訪問靜態成員:
class Foo {
public static $staticProperty = "This is a static property.";
public static function staticMethod() {
echo self::$staticProperty;
}
}
Foo::staticMethod();
以上代碼會輸出:
This is a static property.
繼續使用Foo 類,這次添加非靜態屬性和方法,展示如何通過this 訪問對象成員:
class Foo {
public $nonStaticProperty = "This is a non-static property.";
public function nonStaticMethod() {
echo $this->nonStaticProperty;
}
}
$foo = new Foo();
$foo->nonStaticMethod();
運行結果是:
This is a non-static property.
在PHP 面向對象編程中,self 主要用於訪問當前類的靜態成員,this 則代表當前對象實例,用於訪問非靜態成員。具體來說:
理解和正確使用self 與this,有助於編寫結構清晰、易維護的PHP 代碼。
希望本文對你掌握PHP 中self 和this 的區別及操作方法有所幫助。