問題タブ [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 - PHPでのレイトスタティックバインディングの実用的な例は?
静的バインディングがどのように機能するかは理解していますが、それを使用する時期が思いつかないようです。PHPサイトの例は素晴らしいですが、現実的な使用法は示されていません。問題を解決するためにLSBが絶対に必要な場合、または潜在的に複雑なコードを単純化するのに役立つ場合の例があるかどうか疑問に思っています。
php - 親クラスから子クラス名を取得する方法
子クラスの関数を必要とせずにこれを達成しようとしています...これは可能ですか?そうではないと感じていますが、本当に確認したいのですが...
php - PHPでの遅い静的バインディング
LSB機能に関するphpマニュアルを読んでいて、静的コンテキストでどのように機能するかは理解していますが、非静的コンテキストでは完全には理解していません。マニュアルの例は次のとおりです。
出力は次のとおりです。
クラスBについてはわかりませんが、AのプライベートメソッドをBに継承するにはどうすればよいですか?誰かがここで何が起こっているのかを私に教えてもらえますか?どうもありがとう!
php - PHPレイトスタティックバインディングエラー
LSBの使い方を学ぼうとしています。私は一般的なdbメソッドを分離し、class DatabaseObject
それらを使用するすべてのクラスに拡張しようとしています。一般的なdbメソッドは、、、find_by_id()
などcreate()
ですdelete()
。
クラス
私が得るエラー:
php - 以前に呼び出されたクラスを見つける方法は?
多くのサブクラスを持つ基本クラスと、関数の結果をキャッシュする汎用関数があります。キャッシュ関数で、どのサブクラスが呼び出されたかを知るにはどうすればよいですか?
php - PHPクラスの拡張
PHPプロジェクトにあるMySQLテーブルごとに個別のクラスがあります。クラスは次のようになります。
クラス名をテーブル名として変更することを除いて、プロジェクトにあるほとんどすべてのテーブルに同じクラスを使用します。これで、クラスで使用される関数で「get_class()」を使用したことがわかります。そのため、SQLはクラス名からテーブル名を取得します。
すべてのクラスで使用する関数がクラスに多すぎるため、次のようなサブクラスでクラスを拡張する予定です。
今、私が使用するstudent::find_all()
と、エラーが表示されます:
その点がはっきりしていると思いますがfind_all()
、クラスの生徒と同じように実行してほしいです。それは遅い静的バインディングによって可能になるものですか?
php - PHPはレイトスタティックバインディングを使用して呼び出し関数を取得しますか?
レイトスタティックバインディングを使用して、呼び出し元の関数の情報(ファイル名、行、関数...)を取得することは可能ですか?
以前はIused debug_backtrace()
またはnew \Exception
+ getTrace()
。いくつかの素晴らしい超特別なレイトスタティックバインディング機能(キーワード/関数)を使用することは可能(または簡単)でしょうか?
php - static:: を使用できない場合の呼び出しを解決する方法は?
サーバーにphp 5.2があり(更新できません)、static::routin()
呼び出しでエラーが発生します。それを解決する方法は?とにかく、インテリジェントな呼び出しメカニズムを追加できるように、このタイプの呼び出しが利用可能かどうかを検出する方法はありますか?
php - PHPでの遅延静的バインディング、変数は子クラス間で共有されています
たぶん私の質問は何度か聞かれましたが...
私は次のコードを持っています
そして、私はそれをこのように使用します
「1」と表示されます。そして、おそらくあなたが推測するように、私は「0」が必要です:)
私は2つの方法を見ます:
protected static $count=0;
各派生クラスへの追加整数
$count
ではなく配列を作成します。そして、そのようなことinc
をgetCount
メソッドで実行します。static :: $ count [get_called_class()] ++;
と
しかし、これらの方法は少し醜いと思います。まず、避けたいことをコピー/貼り付けします。第二に-まあ、私は知りません:)私はそれが好きではありません。
私が望むものを達成するためのより良い方法はありますか?
前もって感謝します。
php - これは正常ですか?
この遅い静的バインディングがどのように機能するかわかりません。
get_called_class() は、doprint メソッドを self で呼び出した場合でも、どちらの場合も A2 を出力します。なぜ?