ホームページ > バックエンド開発 > PHPチュートリアル > PHP 5 オブジェクト指向プログラミングにおける「self」と「$this」の違いは何ですか?

PHP 5 オブジェクト指向プログラミングにおける「self」と「$this」の違いは何ですか?

DDD
リリース: 2024-12-17 16:26:17
オリジナル
360 人が閲覧しました

What's the Difference Between `self` and `$this` in PHP 5 Object-Oriented Programming?

PHP 5 の 'self' と '$this' の違いを理解する

PHP 5 でオブジェクト指向プログラミングを使用する場合、 「self」と「$this」の効果的な使用の違いを理解することが重要です。どちらも参照ですが、オブジェクトの相互作用において異なる目的を果たします。

'$this' - 現在のオブジェクトを参照します

非静的メンバーにアクセスするには '$this' を使用しますオブジェクトの現在のインスタンス内の変数とメソッド。これは、インスタンス化される特定のオブジェクトへの直接ポインタを提供します。 「$this->member」構文を使用すると非静的変数にアクセスでき、「$this->method()」はインスタンス メソッドを呼び出します。

例:

class Person {
    private $name;

    public function __construct($name) {
        $this->name = $name;
    }

    public function getName() {
        return $this->name;
    }
}
ログイン後にコピー

この例では、「$this」を使用して「name」プロパティにアクセスし、 'person' オブジェクト内の 'getName()' メソッド。

'self' - 現在のクラスへの参照

対照的に、'self' はアクセスに使用されます。現在のクラス内の静的メンバーとメソッド。これは、クラスの特定のインスタンスではなく、クラス自体を指します。 「self::$static_member」構文は静的変数へのアクセスを有効にし、「self::static_method()」はクラス メソッドを呼び出します。

例:

class StaticCounter {
    private static $count = 0;

    public static function incrementCount() {
        self::$count++;
    }

    public static function getCount() {
        return self::$count;
    }
}
ログイン後にコピー

ここで、「self」は、静的な「count」変数と「incrementCount()」クラスメソッドにアクセスするために利用されます。 'StaticCounter' class.

結論

PHP 5 で効果的なオブジェクト指向プログラミングを行うには、'self' と '$this' の適切な使用法を理解することが不可欠です。 $this' は現在のオブジェクトの非静的メンバーをターゲットにし、'self' は現在のクラスの静的メンバーに焦点を当てます。これらの区別をマスターすることで、クラスやオブジェクトを操作する際のコードの明瞭さと機能性を向上させることができます。

以上がPHP 5 オブジェクト指向プログラミングにおける「self」と「$this」の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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