この記事の例では、PHP Static 遅延静的バインディングの使用法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
PHP5.3以降、遅延静的バインディング静的はどのような問題を解決することを目的として導入されました。 PHP の継承モデルにおける長年の問題は、拡張クラスの最終状態を親クラスで参照することが難しいことです。例を見てみましょう。
class A { public static function echoClass(){ echo __CLASS__; } public static function test(){ self::echoClass(); } } class B extends A { public static function echoClass() { echo __CLASS__; } } B::test(); //输出A
は、PHP5.3 で新機能である遅延静的バインディングを追加しました。これは、サブクラスが親クラスのクラスを継承する場合など、定義フェーズで元々固定されていた式や変数が、実行フェーズで決定されるように変更されることを意味します。静的な式の場合、その値を変更できない場合があります。
次の例は、上で提起された問題を解決します: 8 行目の
class A { public static function echoClass(){ echo __CLASS__; } public static function test() { static::echoClass(); } } class B extends A { public static function echoClass(){ echo __CLASS__; } } B::test(); //输出B
static::echoClass(); は、B が test を呼び出すまで、最初に定義されたメソッドを実行しない静的な遅延バインディング メソッドを定義します。
この記事が PHP プログラミングのすべての人に役立つことを願っています。
PHP Static 遅延静的バインディング使用分析に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。