Banyak aplikasi menyimpan maklumat tentang objek dalam pangkalan data. Masalahnya ialah: bagaimana untuk mewakili data tersebut dalam kod PHP? Rangka kerja pemetaan hubungan objek (ORM) boleh membantu, tetapi ia boleh menjadi rumit dan mungkin tidak selalu diperlukan.
Jawapan ini memberikan penyelesaian mudah untuk mencipta objek PHP secara dinamik berdasarkan rentetan yang disimpan dalam pangkalan data MySQL.
Masalahnya:
Diberikan jadual MySQL dengan skema berikut:
id | type | propertyVal ----+------+------------- 1 | foo | lorum 2 | bar | ipsum
di mana id ialah pengecam unik, jenis ialah jenis objek (cth., foo, bar) dan propertyVal ialah nilai sifat.
Tugasnya ialah untuk mencipta objek PHP daripada jenis dinamik yang ditakrifkan dalam lajur jenis dan mengisinya dengan data daripada baris yang sepadan dalam jadual .
Penyelesaian:
Dalam PHP, anda boleh mencipta objek jenis tertentu secara dinamik menggunakan sintaks berikut:
$type = 'myClass'; $instance = new $type;
Andaikan pertanyaan mengembalikan tatasusunan bersekutu, anda boleh menetapkan sifat kepada objek menggunakan sintaks yang serupa:
foreach ($row as $property => $value) { $instance->$property = $value; }
Pelaksanaan:
Contoh :
$row = $result->fetch_assoc(); $type = $row['type']; unset($row['type']); $instance = new $type; foreach ($row as $property => $value) { $instance->$property = $value; }
Pendekatan ini membolehkan anda mencipta objek dinamik daripada pangkalan data tanpa memerlukan rangka kerja ORM yang kompleks. Ia merupakan penyelesaian yang mudah dan berkesan untuk banyak senario di mana anda perlu mewakili data pangkalan data sebagai objek dinamik dalam kod PHP anda.
Atas ialah kandungan terperinci Bagaimana untuk Membuat Objek PHP Secara Dinamik dari MySQL Strings?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!