self
は静的バインディングです。つまり、クラスがコンパイルされるとき、self
はクラス名に明示的にバインドされているため、 がいくつ継承されても、
、 subclass
または parent class
が単独でアクセスするかどうかに関係なく、 self
は 現在のクラス
を表します。訪問者を選択的にサポートしたい場合は、静的遅延バインディング
を使用する必要があります。
定義: クラス内で使用される 静的遅延バインディング
を表すキーワード部分クラス自体はクラスのコンパイル時に固定されませんが、ビジターが属するクラスはメソッドにアクセスするときに動的に選択されます。 静的遅延バインディング
では、静的バインディングself
の代わりにstatic
キーワードを使用します。静的遅延バインディングでは、静的メンバーの書き換えを使用する必要があります。
1. 静的遅延バインディング: class member
access には、
self の代わりに
static
<?php //父类 class People{ public static $name = 'People'; public static function showName(){ //静态绑定 echo self::$name,'<br/>';//self //静态延迟绑定 echo static::$name,'<br/>'; } } //子类 class Man extends People{ //重写父类静态属性 public static $name = 'Man'; //静态属性因为存储在类内部,因此不会覆盖 } //子类访问 echo Man::$name."<br>";//Man Man::showName();//输出People和Man ?>
2. 静的遅延バインディングを有効にするには、継承されたサブクラスを介してアクセスする必要があります
//接上述代码 People::showName();//输出People People
推奨: php ビデオ チュートリアル #
以上がPHPのSelfは現在のクラスを表すので、アクセスクラスのデータを取得するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。