ホームページ >バックエンド開発 >PHPチュートリアル >PHP で変数からクラスをインスタンス化するにはどうすればよいですか?
PHP では、変数の値からクラスをインスタンス化する必要があるシナリオに遭遇することがあります。これを例で説明します。
$var = 'bar'; $bar = new {$var}Class('var for __construct()'); //$bar = new barClass('var for __construct()');
このメソッドは、$var 変数で指定されたクラスのインスタンスを作成しようとします。ただし、PHP はこの構文をネイティブにサポートしません。
eval() を使用せずにこれを実現するには、変数を利用してクラス名を保持できます。
$classname = $var . 'Class'; // e.g. $classname = 'barClass' $bar = new $classname('var for __construct()');
この手法は、クラスの作成を一元化し、作成プロセスから分離するために使用されるファクトリー パターンでよく使用されます。このようなシナリオでは、ファクトリ クラスは、構成やその他のパラメーターに基づいて、必要なクラス インスタンスを動的に作成します。
動的言語機能と名前空間の詳細については、次のリソースを参照してください。
以上がPHP で変数からクラスをインスタンス化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。