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

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

Patricia Arquette
Patricia Arquette原創
2024-12-20 06:34:10649瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn