Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Menghidupkan Objek PHP Secara Dinamik Berdasarkan Jenis Pangkalan Data?

Bagaimana untuk Menghidupkan Objek PHP Secara Dinamik Berdasarkan Jenis Pangkalan Data?

Susan Sarandon
Susan Sarandonasal
2024-11-24 15:19:11660semak imbas

How to Dynamically Instantiate PHP Objects Based on Database Types?

Mengaju secara Dinamik Objek PHP daripada Jenis Pangkalan Data

Dalam PHP, adalah mungkin untuk mencipta objek secara dinamik berdasarkan rentetan yang menentukan jenis yang ditentukan dalam jadual pangkalan data. Untuk mencapai matlamat ini, seseorang boleh menggunakan pertanyaan pangkalan data dan keupayaan penciptaan objek dinamik PHP.

Pertimbangkan jadual pangkalan data dengan lajur dan data sampel berikut:

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

Andaikan kita mempunyai jenis data PHP ditakrifkan seperti berikut:

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

Untuk mencipta objek jenis yang ditakrifkan oleh lajur jenis pangkalan data, kita boleh memanfaatkan langkah berikut:

  • Laksanakan pertanyaan yang memilih baris dengan id yang diingini.
  • Gunakan mysql_fetch_object() untuk mendapatkan semula data sebagai tatasusunan bersekutu.
  • Dapatkan nilai jenis daripada tatasusunan bersekutu.
  • Secara dinamik cipta objek jenis itu menggunakan sintaks: $instance = new $type;.
  • Tetapkan baki sifat objek daripada tatasusunan bersekutu.

Contohnya:

$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;
}

Dengan cara ini, objek contoh akan dibuat secara dinamik dengan jenis yang ditentukan oleh lajur pangkalan data jenis dan sifatnya akan memberikan nilai daripada baris yang dipilih.

Atas ialah kandungan terperinci Bagaimana untuk Menghidupkan Objek PHP Secara Dinamik Berdasarkan Jenis Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn