Mengekodkan Objek PHP dengan Ahli Peribadi Menggunakan JSON
Apabila mengekodkan objek PHP kepada JSON, anda mungkin menghadapi cabaran jika objek tersebut mengandungi ahli peribadi. Secara lalai, ahli persendirian tidak boleh diakses di luar kelas.
Fungsi Pengekodan dan Ahli Peribadi
Coretan kod yang disediakan menggambarkan fungsi pengekodan tersuai yang berulang melalui sifat objek dan menyimpannya dalam objek $json. Walau bagaimanapun, pendekatan ini mempunyai had apabila objek mengandungi objek bersarang.
Melaksanakan Antara Muka JsonSerializable
Untuk mengatasi cabaran ini, adalah disyorkan untuk melaksanakan antara muka JsonSerializable. Antara muka ini mentakrifkan satu kaedah, jsonSerialize, yang membolehkan anda mengawal data yang disirikan.
Menyesuaikan Serialisasi
Dengan melaksanakan jsonSerialize, anda boleh menentukan sifat yang sepatutnya disertakan dalam perwakilan JSON. Kod berikut menunjukkan cara untuk melaksanakan antara muka ini dan mengembalikan data yang dikehendaki:
class Item implements \JsonSerializable { private $var; private $var1; private $var2; public function __construct() { // ... } public function jsonSerialize() { $vars = get_object_vars($this); return $vars; } }
Menggunakan json_encode
Setelah kaedah jsonSerialize dilaksanakan, json_encode akan mensirikan dengan betul objek, termasuk ahli persendirian seperti yang dinyatakan dalam pelaksanaan jsonSerialize anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekodkan Objek PHP dengan Ahli Persendirian ke JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!