Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menukar Objek stdClass kepada Kelas Tersuai dalam PHP?
Menukar Objek stdClass kepada Kelas Tersuai
Dalam senario di mana sistem storan pihak ketiga hanya mengembalikan objek stdClass, menghantarnya ke dalam penuh- objek baru kelas tertentu menjadi perlu. Walau bagaimanapun, PHP tidak menyediakan kaedah pemutus yang mudah untuk penukaran sedemikian.
Juga Jenis
Keupayaan juggling jenis PHP membenarkan penukaran tertentu, seperti:
Penukaran ini tidak ternilai untuk bekerja dengan objek stdClass, tetapi mereka tidak mencipta tika kelas tertentu.
Pemeta Tersuai
Untuk penukaran menyeluruh, a Kelas Mapper boleh dibuat untuk melakukan penghantaran dari stdClass ke kelas sasaran. Ini melibatkan penentuan kaedah yang menterjemahkan setiap sifat objek stdClass ke dalam sifat yang sepadan dalam kelas sasaran.
Penyelesaian Hackish (Dinasihatkan Berhati-hati)
Sebagai penyelesaian, kod berikut boleh disesuaikan dengan tatasusunan dan objek "pseudocast" kepada kejadian tertentu kelas:
function arrayToObject(array $array, $className) { return unserialize(sprintf( 'O:%d:"%s"%s', strlen($className), $className, strstr(serialize($array), ':') )); } function objectToObject($instance, $className) { return unserialize(sprintf( 'O:%d:"%s"%s', strlen($className), $className, strstr(strstr(serialize($instance), '"'), ':') )); }
Penyelesaian ini mengubah suai perwakilan bersiri data untuk mewakili kelas sasaran. Walau bagaimanapun, adalah disyorkan untuk menggunakan pendekatan ini dengan berhati-hati kerana kemungkinan kesan sampingan.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Objek stdClass kepada Kelas Tersuai dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!