ホームページ >バックエンド開発 >PHPチュートリアル >PHP 5: `$this` と `self` – それぞれをいつ使用するか?
Self と $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
例 (間違っています)使用法):
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()
概要:
「$」を使用これは、非静的メンバーのアクセスとポリモーフィズムの場合に使用します。静的メンバーへのアクセスやポリモーフィズムを抑制する必要がある場合は、「self」を使用します。
以上がPHP 5: `$this` と `self` – それぞれをいつ使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。