php での self キーワードの使用法は次のとおりです: 1. クラス名を置換し、現在のクラスの静的メンバー変数と静的関数を参照します; 2. 多態性の動作を抑制し、現在のクラスの関数を参照しますサブクラスでオーバーライドするのではなく、クラスを使用します。 self は常に現在のクラス (およびクラス インスタンス) を指します。
使用法:
self は常に「現在のクラス (およびクラス インスタンス)」を指します。
詳細な紹介:
1. クラス名を置換し、現在のクラスの静的メンバー変数と静的関数を参照します;
2. ポリモーフィックな動作を抑制し、関数を参照しますサブクラスでカバーされる実装ではなく、現在のクラスの実装です;
以下では、例を使用して、parent 、 static 、および this と比較します。
#parent
# self とparent の区別は比較的簡単です。parent は親クラス/基本クラスの隠しメソッド (または変数) を指し、self は親クラス/基本クラスの隠しメソッド (または変数) を指します。独自のメソッド (または変数) を参照します。たとえば、親クラスのコンストラクターはコンストラクター内で呼び出されます。class Base { public function __construct() { echo "Base contructor!", PHP_EOL; } } class Child { public function __construct() { parent::__construct(); echo "Child contructor!", PHP_EOL; } } new Child; // 输出: // Base contructor! // Child contructor!
static
static 一般的な目的は、関数または変数を変更してクラス関数にすることです。関数内の変数は、そのライフ サイクルをアプリケーション全体のライフ サイクルまで拡張します。ただし、self との関連付けは、PHP 5.3 以降に導入された新しい用途である静的遅延バインディングです。 staticの静的遅延バインディング機能を使用すると、実行時に所属クラスを動的に決定することができます。例:class Base { public function __construct() { echo "Base constructor!", PHP_EOL; } public static function getSelf() { return new self(); } public static function getInstance() { return new static(); } public function selfFoo() { return self::foo(); } public function staticFoo() { return static::foo(); } public function thisFoo() { return $this->foo(); } public function foo() { echo "Base Foo!", PHP_EOL; } } class Child extends Base { public function __construct() { echo "Child constructor!", PHP_EOL; } public function foo() { echo "Child Foo!", PHP_EOL; } } $base = Child::getSelf(); $child = Child::getInstance(); $child->selfFoo(); $child->staticFoo(); $child->thisFoo();プログラムの出力は次のとおりです: 関数参照に関して、self と static の違いは次のとおりです。 静的メンバー関数の場合、self は現在のコード クラスを指し、static は呼び出しクラスを指します。非静的メンバー関数の場合、自己はポリモーフィズムを抑制し、現在のクラスのメンバー関数を指します。static はこれと等価で、dynamic は次の関数を指します。呼び出し側のクラス。 さらに関連する知識については、
php 中国語 Web サイト をご覧ください。
以上がPHPでのselfキーワードの使用法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。