変数から PHP クラスを動的にインスタンス化する
PHP では、クラスを含む文字列変数を使用してクラスを動的にインスタンス化できます。名前。これを実現するには、最初にクラス名を新しい変数に割り当て、次にドル記号 ($) 演算子を使用してクラスをインスタンス化します。
例:
$var = 'bar'; $classname = $var . 'Class'; $bar = new $classname('argument for constructor');
これにより、barClass クラスの新しいインスタンスが作成され、そのインスタンスに引数「コンストラクターの引数」が渡されます。 constructor.
ファクトリ パターンの使用:
この手法は、ファクトリ パターンのコンテキストでよく使用されます。ファクトリ クラスは、インスタンスの作成と返しを担当します。指定されたパラメータに基づいて異なるクラス。例:
class ClassFactory { public static function create($className, $args = []) { $instance = new $className(...$args); return $instance; } }
このファクトリー クラスは次のように使用できます:
$instance = ClassFactory::create('barClass', ['argument for constructor']);
補足:
この手法を使用する場合、任意のクラスのインスタンス化を防ぐために、クラス名を含む変数が適切にサニタイズされていることを確認することが重要です。これは、preg_replace() などの関数を使用してクラス名を検証することで実現できます。
以上が変数から PHP クラスを動的にインスタンス化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。