文字列から PHP オブジェクトを動的に作成する
はじめに:
PHP では、次のことが可能です。目的のクラス名の文字列表現に基づいて、特定のクラスのオブジェクトを動的に作成します。この手法は、クラス タイプが事前に不明であるか、実行時にプログラムによって決定されないシナリオで特に役立ちます。
問題ステートメント:
次のような MySQL データベースを考えてみましょう。 table には、オブジェクトのタイプやプロパティなど、オブジェクトに関する情報が格納されます。タスクは、単一のクエリを使用して指定されたタイプの PHP オブジェクトを作成し、データベース内の同じ行から対応するプロパティ値を割り当てることです。
解決策:
データベース内の文字列に基づいて PHP オブジェクトを動的に作成するには、次の手順に従います。
オブジェクトを作成します: 次の PHP を使用します。指定したクラスのインスタンスを作成する構文:
$instance = new $type;
プロパティ値の割り当て: データベース行の残りの列を反復処理し、その値を新しく作成されたオブジェクトの対応するプロパティ。例:
foreach ($row as $key => $value) { if ($key != 'type') { $instance->$key = $value; } }
例:
問題で言及されているデータベース テーブルを考えてみましょう:
id | type | propertyVal |
---|---|---|
1 | foo | lorum |
2 | bar | ipsum |
上記で概説したソリューションを使用すると、次の PHP コードを使用してオブジェクトを作成できます。
$row = fetchRowFromDatabase(); $type = $row['type']; $instance = new $type; foreach ($row as $key => $value) { if ($key != 'type') { $instance->$key = $value; } }
このコードは、「type」の値に基づいて「foo」または「bar」クラスのインスタンスを作成します。 ' 列を選択し、「propertyVal」値をオブジェクトの対応するプロパティに割り当てます。
以上がデータベース内の文字列から PHP オブジェクトを動的に作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。