ホームページ > バックエンド開発 > PHPチュートリアル > 親クラスのメソッドを呼び出すサブクラスのメソッド名を親クラスのメソッドから取得しますか?

親クラスのメソッドを呼び出すサブクラスのメソッド名を親クラスのメソッドから取得しますか?

WBOY
リリース: 2016-08-04 09:21:58
オリジナル
1258 人が閲覧しました

リーリー

説明: たとえば、インスタンス化で呼び出されるメソッドの名前$b调用了自身的test方法,这个时候父类中的初始化方法son_function便保存了$b。この方法は何と呼ばれますか?

——————————————区切り線————————————————
私の使用シナリオを追加しましょう: ログインしているユーザーを記録したいそして、delete メソッドを使用したときなどの各ステップのデータを保存し、コントローラーとメソッドの名前、および受信した post および get データを保存します。 この機能を実装する意義については今は話さないでおこう。 私のアイデアはこれです。各コントローラーはパブリックコントローラーを継承し、パブリックコントローラーの初期化メソッドでこの操作を実装します。下の図と同様に、疑似コードを書きました:
親クラスのメソッドを呼び出すサブクラスのメソッド名を親クラスのメソッドから取得しますか?

返信内容:

リーリー

説明: たとえば、インスタンス化で呼び出されるメソッドの名前$b调用了自身的test方法,这个时候父类中的初始化方法son_function便保存了$b。この方法は何と呼ばれますか?

——————————————区切り線————————————————
私の使用シナリオを追加しましょう: ログインしているユーザーを記録したいそして、delete メソッドを使用したときなどの各ステップのデータを保存し、コントローラーとメソッドの名前、および受信した post および get データを保存します。 この機能を実装する意義については今は話さないでおこう。 私のアイデアはこれです。各コントローラーはパブリックコントローラーを継承し、パブリックコントローラーの初期化メソッドでこの操作を実装します。下の図と同様に、疑似コードを書きました:
親クラスのメソッドを呼び出すサブクラスのメソッド名を親クラスのメソッドから取得しますか?

  1. これはオブジェクト指向の設計哲学に反します

  2. 親クラスはサブクラスの実装を気にすべきではありません。
  3. あなたが明確に考えて本当にこれをやりたいのであれば、リフレクションは実行可能な解決策です(ただし非効率的です)

  4. 直感的には、アダプター パターンを使用する必要があるかもしれません

アダプター パターン:
https://en.wikipedia.org/wiki/Adapter_pattern
親クラスのメソッドを呼び出すサブクラスのメソッド名を親クラスのメソッドから取得しますか?

より適切な実装ソリューションを提供するには、ニーズをさらに調整する必要がある場合があります

php late static bindingを検索すると、問題が解決されるはずです

ロジックが間違っています。サブクラスをインスタンス化せずにテストや XML を実行するにはどうすればよいですか?インスタンス化は完了しましたが、コンストラクター内のパラメーターの変更にはまだ意味がありますか?

リーリー

パブリック関数 test() {$this->sonFunction = 'test';} はもう必要ありません

PHP のオーバーロードされた __call() または __callstatic を使用してみることができます

http://php.net/manual/zh/ language.oop5.overloading.php#object.callstatic

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート