問題タブ [late-static-binding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 自己と静的の中間点はありますか?
Late Static Binding の予期しない動作がなく、SELF と STATIC の中間点を探しています。
以下は私のコードで、練習結果と期待される結果を示しています。
結果:
この種のことは理にかなっています。Late Static Binding では、予約済みの「静的」変数が最後のクラス スコープを参照します。私が探しているのは、変数が発生するトップ クラスを参照する予約変数です。
IE: RecordObject クラスを Member というクラスで拡張する場合、各クラス定義でこの関数を上書きすることなく、新しい Member (または Page、または Comment) をインスタンス化する RecordObject で定義できる関数が必要です。これは可能ですか?
私が直面している問題は、たとえば、私がメンバーにいて、Page::get($id) を呼び出すことです。これは内部で新しいオブジェクトを作成し、いくつかの魔法を実行します。残念ながら、静的を使用すると、その新しいオブジェクトはメンバーになります...サイコロはありません。
php - PHPの別のクラス内で静的プロパティを呼び出す
クラスの静的プロパティを別のクラス内で呼び出すことに問題があります。
戻ることを期待してThis is first property
いますが、出力は__constructのパラメーター入力の名前にすぎません。
出力がprint_r( static::$this->property );
ちょうどproperty_one
php - オブジェクト レベルでキャッシュ ハンドラを設定しますか?
ベース オブジェクト CacheObject があるとします。
Bは私に「テスト」を提供します。これは、クラスAに独自の定義済みプロパティ$handlerがないためだと思います...クラスBで共有された継承されたものを使用しています。これは正確ですか?
すべてのオブジェクト内で $handler を宣言する必要なく、実際にそれらを個別に設定する方法はありますか?
php - 拡張クラスで非静的配列の設定を解除する遅延静的バインディング
これが少し複雑であることを事前にお詫び申し上げます。もしそうでなければ、私はその質問を考えていないかもしれません. 特定のコアクラスを拡張できるプラットフォームを使用していますが、他のクラスは拡張できませんが、一連のイベントのために、親メソッド全体を消去せずに拡張クラスからの変更を適用できるかどうかわかりません(これは避けたいです) )。関連する一連のクラスの単純化されたバージョンを次に示します。
メイン ビュー クラス (拡張可能):
セカンダリ ビュー クラス (上記のメイン クラスから呼び出されます):
セカンダリ ビュー クラスのデータ フェッチャー:
インクルード配列としてフェッチされた単純化されたデータ:
それが達成するものの疑似コードを含むメインクラス(上記の最初のもの)の私の拡張:
遅延静的バインディングに関するドキュメントを読みましたが、それがいつ機能し、いつ機能しないか、そしてこの場合、単一のポイントから複数の深さを静的にバインドできるかどうかはまだはっきりしていません。これが遅延静的バインディングの目的ではないMyViewData::display
場合、親が非静的に呼び出すときに、変更された配列と出力が既にあるように、拡張メソッドからデータフェッチャーを静的に呼び出す同等の方法がありますか (またはこの場合、出力ではありません) 変更された配列メンバー?
php - PHP で 2 つの同じ静的クラスを作成する
PHPで静的クラスを拡張しようとしています。私が実行しているのは、拡張クラスの 1 つで変数を変更すると、他のすべてのクラスも変更されるということです。これは私がやろうとしていることです:
遅延静的バインディングとキーワード static:: について読みました。しかし、Apple と Banana の両方で Fruit のすべてのメソッドを再宣言することなく、これを達成する方法を思いつきません。
喜んでお手伝いします
ありがとうございました