eval() を使用せずに PHP でクラスを動的にインスタンス化するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-20 12:42:11
オリジナル
947 人が閲覧しました

How to Dynamically Instantiate Classes in PHP without Using eval()?

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 サイトの他の関連記事を参照してください。

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