ホームページ >バックエンド開発 >PHPチュートリアル >PHP における static と self の違い

PHP における static と self の違い

青灯夜游
青灯夜游転載
2020-04-02 09:43:422602ブラウズ

PHP における static と self の違い

現在のメソッドが定義されているクラスに応じて、self:: または __CLASS__ を使用して、現在のクラスへの静的参照を作成します。

Using static::現在のメソッドが定義されているクラスについては、実際の実行時に計算されます。静的メソッドの呼び出し (ただし、それに限定されない) に使用できるため、「静的バインディング」とも呼ばれます。

静的バインディングは、継承スコープ内で静的に呼び出されるクラスを参照するために PHP 5.3.0 で追加された関数です。

簡単に言うと、#self はどのクラスを参照するかということです。

static は使用されるクラスを表します。これは親クラスに記述した static であり、次の関数によってオーバーライドされます。使用されるのはサブクラスのメソッドまたは属性です

<?php
class Person
{
    public static function name()
    {
        echo "111";
        echo "<br />";
    }
    public static function callself()
    {
        self::name();
    }

    public static function callstatic()
    {
        static::name();
    }
}

class Man extends Person
{
    public static function name()
    {
        echo "222";
        echo "<br />";
    }
}

Man::callself();  // output: 111
Man::callstatic();  // output: 222
?>
推奨: PHP ビデオ チュートリアル

以上がPHP における static と self の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。