自我與$this:何時以及如何使用每個
問題:
問題:問題:
問題:
問題:
問題:
簡答:
非靜態與靜態成員:
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中文網其他相關文章!