PHP での動的変数を使用したクラスのインスタンス化
変数名からクラスを動的にインスタンス化することは、PHP では貴重なテクニックとなります。次のシナリオを考えてみましょう:
$var = 'bar'; $bar = new {$var}Class('var for __construct()'); //$bar = new barClass('var for __construct()');
避けたい議論の多い eval() 関数に頼らずにこれを実現するにはどうすればよいでしょうか?
変数の代入とインスタンス化
解決策は、クラス名を保持する変数を作成し、$ 変数演算子を使用してクラスをインスタンス化することです。
$classname = $var . 'Class'; $bar = new $classname("xyz");
この手法により、クラスを動的にインスタンス化できます。変数値に基づいており、Factory パターンなどのパターンで役立つことがわかります。
さらなる考慮事項
このトピックをさらに詳しく調べるには、名前空間と名前空間に関する PHP のドキュメントを参照してください。より多くのコンテキストと例を提供する動的言語機能。
以上がeval() を使用せずに PHP でクラスを動的にインスタンス化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。