ホームページ > バックエンド開発 > PHPチュートリアル > 【PHPの動的呼び出し方法】パラメータを使った解決策アイデア

【PHPの動的呼び出し方法】パラメータを使った解決策アイデア

WBOY
リリース: 2016-06-13 13:32:19
オリジナル
1014 人が閲覧しました

[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を呼び出す方法は、継承された親クラスのメソッド
でサブクラスの新しいメソッドを呼び出すことです。

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