[PHP 動的呼び出しメソッド] パラメーター付き
VO クラスがあります。
columnVo extends Model
Model で Vo メソッドを呼び出したい。
しかし: 新しい ColumnVo($db)、ここに重い $db を渡す必要があります。
しかし、私の Vo のメソッドは $db に適用されません。
-----------------------------------------------
モデル内 この機能を実現するには: $this->Vo メソッド (メソッドパラメータ) どうすればよいでしょうか?
現在、$this はすでに ColumnVo を指しており、ColumnVo が初期化されると、すでに $db が存在するためです。
リフレクションを使用する場合、次の手順を実行する必要がありますか?
1.new ColumnVo
2. 新しい Vo メソッドを呼び出します。
この場合、リソースが無駄になります。そして、現在の $this の他の初期化されたリソースを呼び出す方法はありません。
-----解決策---------
シングルケースモード
------解決策------------------
あなたが望んでいることを理解するまでに長い時間がかかりました一部のサブクラスは、親クラスから特定の属性またはメソッドを継承すべきではありませんか?
親クラスのコンストラクターで解決策を考えた方が良い
------解決策----------------------
上司が言ったように、シングルトンモードは必要ありませんもう一度オブジェクトを渡してみましょう。必要に応じて静的メソッドを呼び出すだけです
さらに、call_user_func_array() を使用して動的にメソッドを呼び出すだけで十分です
------解決策---------
何かが混同されているようです
columnVo extends Model
インスタンス化するのはModel
ではなくcolumnVoです。いわゆるModel
でcolumnVoを呼び出す方法は、継承された親クラスのメソッド
でサブクラスの新しいメソッドを呼び出すことです。