ホームページ > データベース > mysql チュートリアル > データベース内の文字列から PHP オブジェクトを動的に作成するにはどうすればよいですか?

データベース内の文字列から PHP オブジェクトを動的に作成するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-14 15:55:02
オリジナル
520 人が閲覧しました

How to dynamically create PHP objects from strings in a database?

文字列から PHP オブジェクトを動的に作成する

はじめに:

PHP では、次のことが可能です。目的のクラス名の文字列表現に基づいて、特定のクラスのオブジェクトを動的に作成します。この手法は、クラス タイプが事前に不明であるか、実行時にプログラムによって決定されないシナリオで特に役立ちます。

問題ステートメント:

次のような MySQL データベースを考えてみましょう。 table には、オブジェクトのタイプやプロパティなど、オブジェクトに関する情報が格納されます。タスクは、単一のクエリを使用して指定されたタイプの PHP オブジェクトを作成し、データベース内の同じ行から対応するプロパティ値を割り当てることです。

解決策:

データベース内の文字列に基づいて PHP オブジェクトを動的に作成するには、次の手順に従います。

  1. データベースにクエリを実行します。 作成するオブジェクトを表す行を取得します。
  2. type プロパティを抽出します: 'type' 列の値を変数に保存します。
  3. オブジェクトを作成します: 次の PHP を使用します。指定したクラスのインスタンスを作成する構文:

    $instance = new $type;
    ログイン後にコピー
  4. プロパティ値の割り当て: データベース行の残りの列を反復処理し、その値を新しく作成されたオブジェクトの対応するプロパティ。例:

    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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート