ホームページ >データベース >mysql チュートリアル >MySQL 文字列から PHP オブジェクトを動的に作成する方法
多くのアプリケーションは、オブジェクトに関する情報をデータベースに保存します。問題は、そのデータを PHP コードでどのように表現するかということです。オブジェクト リレーショナル マッピング (ORM) フレームワークは役立ちますが、複雑になる可能性があり、必ずしも必要なわけではありません。
この回答では、MySQL データベースに格納されている文字列に基づいて PHP オブジェクトを動的に作成する簡単なソリューションを示します。
問題:
次のスキーマを持つ MySQL テーブルがあるとします:
id | type | propertyVal ----+------+------------- 1 | foo | lorum 2 | bar | ipsum
ここで、id は一意の識別子、type はオブジェクトのタイプです。 (例: foo、bar)、propertyVal はプロパティ値です。
このタスクは、type 列で定義された動的タイプの PHP オブジェクトを作成し、テーブル内の対応する行のデータをそれらに設定することです。 .
解決策:
PHP では、次の構文を使用して、指定された型のオブジェクトを動的に作成できます。
$type = 'myClass'; $instance = new $type;
仮定クエリは連想配列を返します。同様の構文を使用してオブジェクトにプロパティを割り当てることができます。
foreach ($row as $property => $value) { $instance->$property = $value; }
実装:
例:
$row = $result->fetch_assoc(); $type = $row['type']; unset($row['type']); $instance = new $type; foreach ($row as $property => $value) { $instance->$property = $value; }
このアプローチにより、複雑な ORM フレームワークを必要とせずに、データベースから動的オブジェクトを作成できます。これは、PHP コードでデータベース データを動的オブジェクトとして表す必要がある多くのシナリオにとって、シンプルで効果的なソリューションです。
以上がMySQL 文字列から PHP オブジェクトを動的に作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。