ホームページ >バックエンド開発 >PHPチュートリアル >PHP で変数からクラスをインスタンス化するにはどうすればよいですか?

PHP で変数からクラスをインスタンス化するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-17 16:17:01501ブラウズ

How Can I Instantiate a Class from a Variable in PHP?

PHP での変数からのクラスのインスタンス化の実装

PHP では、変数の値からクラスをインスタンス化する必要があるシナリオに遭遇することがあります。これを例で説明します。

$var = 'bar';
$bar = new {$var}Class('var for __construct()'); //$bar = new barClass('var for __construct()');

このメソッドは、$var 変数で指定されたクラスのインスタンスを作成しようとします。ただし、PHP はこの構文をネイティブにサポートしません。

eval() を使用しない代替アプローチ

eval() を使用せずにこれを実現するには、変数を利用してクラス名を保持できます。

$classname = $var . 'Class'; // e.g. $classname = 'barClass'

$bar = new $classname('var for __construct()');

ファクトリー パターン

この手法は、クラスの作成を一元化し、作成プロセスから分離するために使用されるファクトリー パターンでよく使用されます。このようなシナリオでは、ファクトリ クラスは、構成やその他のパラメーターに基づいて、必要なクラス インスタンスを動的に作成します。

その他のリソース

動的言語機能と名前空間の詳細については、次のリソースを参照してください。

  • [名前空間](https://www.php.net/manual/en/ language.namespaces.php)
  • [動的言語機能](https://www .php.net/manual/en/ language.types.dynamic.php)

以上がPHP で変数からクラスをインスタンス化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。