「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PHP で変数からクラスをインスタンス化するにはどうすればよいですか?

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

2024 年 11 月 18 日に公開
ブラウズ:876

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()');

Factory Pattern

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

その他のリソース

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

  • [名前空間](https://www.php.net/manual/en/ language.namespaces.php)
  • [動的言語機能](https:/ /www.php.net/manual/en/ language.types.dynamic.php)
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3