ホームページ >データベース >mysql チュートリアル >データベースの種類に基づいて PHP オブジェクトを動的にインスタンス化する方法

データベースの種類に基づいて PHP オブジェクトを動的にインスタンス化する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-11-24 15:19:11665ブラウズ

How to Dynamically Instantiate PHP Objects Based on Database Types?

データベース型から PHP オブジェクトを動的にインスタンス化する

PHP では、定義された型を指定する文字列に基づいてオブジェクトを動的に作成できます。データベーステーブル内。これを実現するには、データベース クエリと PHP の動的オブジェクト作成機能を利用できます。

次の列とサンプル データを含むデータベース テーブルを考えてみましょう:

id | type | propertyVal
----+------+-------------
1 | foo  | lorum
2 | bar  | ipsum

PHP データ型があるとします。次のように定義されます:

class ParentClass {...}
class Foo extends ParentClass {private $id, $propertyVal; ...}
class Bar extends ParentClass {private $id, $propertyVal; ...} 
// ...(more classes)...

データベースの type 列で定義されたタイプのオブジェクトを作成するには、次を利用できます。手順:

  • 目的の ID を持つ行を選択するクエリを実行します。
  • mysql_fetch_object() を使用して、データを連想配列として取得します。
  • 連想配列から型の値を取得します。
  • その型のオブジェクトを動的に作成します構文を使用します: $instance = new $type;.
  • 連想配列からオブジェクトの残りのプロパティを割り当てます。

例:

$result = mysqli_query($conn, "SELECT * FROM table WHERE id = 1");
$row = mysqli_fetch_assoc($result);

$type = $row['type'];
$instance = new $type;

unset($row['type']);  
foreach ($row as $property => $value) {
   $instance->$property = $value;
}

このようにして、インスタンス オブジェクトはタイプ データベース列で指定されたタイプで動的に作成され、そのプロパティには選択したプロパティの値が割り当てられます。行。

以上がデータベースの種類に基づいて PHP オブジェクトを動的にインスタンス化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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