ホームページ  >  記事  >  バックエンド開発  >  PHPのSelfは現在のクラスを表すので、アクセスクラスのデータを取得するにはどうすればよいでしょうか?

PHPのSelfは現在のクラスを表すので、アクセスクラスのデータを取得するにはどうすればよいでしょうか?

autoload
autoloadオリジナル
2021-03-12 15:03:251463ブラウズ

self は静的バインディングです。つまり、クラスがコンパイルされるとき、self はクラス名に明示的にバインドされているため、 がいくつ継承されても、 subclass または parent class が単独でアクセスするかどうかに関係なく、 self現在のクラスを表します。訪問者を選択的にサポートしたい場合は、静的遅延バインディングを使用する必要があります。

定義: クラス内で使用される 静的遅延バインディング を表すキーワード部分クラス自体はクラスのコンパイル時に固定されませんが、ビジターが属するクラスはメソッドにアクセスするときに動的に選択されます。 静的遅延バインディングでは、静的バインディングselfの代わりにstaticキーワードを使用します。静的遅延バインディングでは、静的メンバーの書き換えを使用する必要があります。

1. 静的遅延バインディング: class memberaccess には、self の代わりに static

キーワードを使用します。
<?php
//父类
class People{
    public static $name = &#39;People&#39;;
    public static function showName(){
        //静态绑定
        echo self::$name,&#39;<br/>&#39;;//self
        //静态延迟绑定
        echo static::$name,&#39;<br/>&#39;;
    }
}
//子类
class Man extends People{
    //重写父类静态属性
    public static $name = &#39;Man&#39;;    //静态属性因为存储在类内部,因此不会覆盖
}

//子类访问

echo Man::$name."<br>";//Man
Man::showName();//输出People和Man
?>

2. 静的遅延バインディングを有効にするには、継承されたサブクラスを介してアクセスする必要があります

//接上述代码
People::showName();//输出People People

推奨: php ビデオ チュートリアル #

以上がPHPのSelfは現在のクラスを表すので、アクセスクラスのデータを取得するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。