首頁 > 後端開發 > php教程 > PHP 5:`$this` 與 `self` – 何時使用每個?

PHP 5:`$this` 與 `self` – 何時使用每個?

Patricia Arquette
發布: 2024-12-20 06:34:10
原創
621 人瀏覽過

PHP 5: `$this` vs. `self` – When to Use Each?

自我與$this:何時以及如何使用每個

問題:

問題:

問題:

問題:

問題:

問題:

    在PHP 5 中,關鍵字「self」和「$this」的用法有何不同?什麼時候應該適當使用?
  • 答案:

簡答:

    使用「$this」來指涉當前物件的實例變數與方法。使用“self”引用目前類別的靜態變數和方法。
  • 完整答案:

非靜態與靜態成員:

class X {
    private $non_static_member = 1;
    private static $static_member = 2;

    function __construct() {
        echo $this->non_static_member . ' ' . self::$static_member;
    }
}

new X(); // Output: 1 2
登入後複製

"$this->member" 訪問特定於該物件的非靜態成員變數和方法當前物件。 「self::$member」存取類別的所有實例共享的靜態成員變數和方法。

class X {
    private $non_static_member = 1;
    private static $static_member = 2;

    function __construct() {
        echo self::$non_static_member . ' ' . $this->static_member; // Incorrect usage
    }
}

new X(); // Error: Undefined properties
登入後複製

多態性:

class X {
    function foo() {
        echo 'X::foo()';
    }

    function bar() {
        self::foo(); // Suppresses polymorphism
    }
}

class Y extends X {
    function foo() {
        echo 'Y::foo()';
    }
}

$x = new Y();
$x->bar(); // Output: X::foo()
登入後複製

「$this」可以透過呼叫衍生中定義的方法來示範多態性類別。 “self”抑制多態性並始終調用當前類別中定義的方法。

範例(正確用法):範例(不正確用法):抑制多態性:總結:使用"$ this”用於非靜態成員存取和多態性。當您需要抑制多態性時,請使用“self”進行靜態成員存取。

以上是PHP 5:`$this` 與 `self` – 何時使用每個?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板