ホームページ > バックエンド開発 > PHPチュートリアル > PHP `self` と `$this`: それぞれをいつ使用するか?

PHP `self` と `$this`: それぞれをいつ使用するか?

Barbara Streisand
リリース: 2024-12-24 01:17:10
オリジナル
224 人が閲覧しました

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

PHP で 'Self' と '$This' を使用する場合

PHP での 'self' と '$ の違いを理解するこれは重要です。 「Self」は現在のクラスを指し、「$this」は現在のオブジェクトを指します。

「Self」を使用する場合:

  • 静的メンバーへのアクセス (変数またはメソッド):

    class MyClass {
        static $static_member = 10;
    }
    echo MyClass::$static_member; // Output: 10
    ログイン後にコピー
  • 親クラス メソッドの呼び出し:

    class ChildClass extends ParentClass {
        public function myMethod() {
            self::parentMethod(); // Calls the parent class method
        }
    }
    ログイン後にコピー

「$This」を使用する場合:

  • アクセス中非静的メンバー:

    class MyClass {
        private $instance_member = 20;
    }
    $obj = new MyClass();
    echo $obj->instance_member; // Output: 20
    ログイン後にコピー
  • インスタンス メソッドの呼び出し:

    class MyClass {
        public function myMethod() {
            echo $this->instance_member; // Accesses the instance member
        }
    }
    ログイン後にコピー
  • ポリモーフィズム:派生クラスからのインスタンス メソッドの呼び出し:

    class BaseClass {
        public function myMethod() {
            echo 'BaseClass::myMethod()';
        }
    }
    class DerivedClass extends BaseClass {
        override public function myMethod() {
            echo 'DerivedClass::myMethod()';
        }
    }
    $baseObj = new BaseClass();
    $derivedObj = new DerivedClass();
    $baseObj->myMethod(); // Output: 'BaseClass::myMethod()'
    $derivedObj->myMethod(); // Output: 'DerivedClass::myMethod()'
    ログイン後にコピー
  • 抑制中ポリモーフィズム: 派生クラスで 'self' を使用して親クラスのメソッドを呼び出す:

    class BaseClass {
        public function myMethod() {
            echo 'BaseClass::myMethod()';
        }
    }
    class DerivedClass extends BaseClass {
        override public function myMethod() {
            parent::myMethod(); // Calls the BaseClass's myMethod() using self::
        }
    }
    $derivedObj = new DerivedClass();
    $derivedObj->myMethod(); // Output: 'BaseClass::myMethod()'
    ログイン後にコピー

以上がPHP `self` と `$this`: それぞれをいつ使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート