使用シナリオ
まず次のコードを見てみましょう:
リーリー出力:
リーリー上記の aClass と bClass は抽象クラスのベースを継承していますが、静的メソッド create() も 2 つのサブクラスに実装されています。 oop のアイデアに従って、この繰り返しコードは親クラス ベースに実装する必要があります。
コードを改善する
リーリー現在のコードは以前のアイデアと一致しているようです。create() メソッドは親クラスで共有されています。それを実行して何が起こるかを見てみましょう。
... で抽象クラス ベースをインスタンス化できません
残念ながら、親クラスの self() は、親クラスのベースに解決され、サブクラスから継承されないようです。この問題を解決するために、php5.3 では遅延静的バインディングの概念が導入されました。
遅延静的バインディング
リーリーこのコードは前のコードとほぼ同じです。違いは、static が親クラスではなくサブクラスに解決されることです。これは、PHP の遅延静的コードです。バインディング。
最後に、コードを実行して、最終的に望ましい結果を取得します。
リーリー