リーリー
説明: たとえば、インスタンス化で呼び出されるメソッドの名前$b
调用了自身的test
方法,这个时候父类中的初始化方法son_function
便保存了$b
。この方法は何と呼ばれますか?
——————————————区切り線————————————————
私の使用シナリオを追加しましょう: ログインしているユーザーを記録したいそして、delete メソッドを使用したときなどの各ステップのデータを保存し、コントローラーとメソッドの名前、および受信した post および get データを保存します。 この機能を実装する意義については今は話さないでおこう。 私のアイデアはこれです。各コントローラーはパブリックコントローラーを継承し、パブリックコントローラーの初期化メソッドでこの操作を実装します。下の図と同様に、疑似コードを書きました:
説明: たとえば、インスタンス化で呼び出されるメソッドの名前$b
调用了自身的test
方法,这个时候父类中的初始化方法son_function
便保存了$b
。この方法は何と呼ばれますか?
——————————————区切り線————————————————
私の使用シナリオを追加しましょう: ログインしているユーザーを記録したいそして、delete メソッドを使用したときなどの各ステップのデータを保存し、コントローラーとメソッドの名前、および受信した post および get データを保存します。 この機能を実装する意義については今は話さないでおこう。 私のアイデアはこれです。各コントローラーはパブリックコントローラーを継承し、パブリックコントローラーの初期化メソッドでこの操作を実装します。下の図と同様に、疑似コードを書きました:
これはオブジェクト指向の設計哲学に反します
あなたが明確に考えて本当にこれをやりたいのであれば、リフレクションは実行可能な解決策です(ただし非効率的です)
直感的には、アダプター パターンを使用する必要があるかもしれません
アダプター パターン:
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