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()');
この手法は、Factory パターンでよく使用され、クラスの作成を一元化し、分離するために使用されます。作成過程から。このようなシナリオでは、ファクトリ クラスは、構成やその他のパラメーターに基づいて、必要なクラス インスタンスを動的に作成します。
動的言語機能と名前空間の詳細については、次を参照してください。リソース:
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3