Mengakses Harta Objek dengan Nama Tidak Sah
Dalam PHP, ada kemungkinan untuk menemui objek dengan sifat yang mempunyai aksara yang menyalahi undang-undang atau tidak sah, seperti sempang (-). Walaupun pengakses harta biasa gagal, terdapat penyelesaian untuk mendapatkan semula nilai ini.
Penyelesaian 1: Notasi Kurungan
Untuk mengakses harta dengan nama yang tidak sah, gunakan notasi kurungan dengan nama harta yang disertakan dalam pendakap kerinting ({}):
$object->{'todo-items'};
Penyelesaian 2: Nama Pembolehubah dan Gabungan
Sebagai alternatif, tetapkan nama sifat kepada pembolehubah dan gabungkannya dengan $objek pembolehubah:
$todolist = 'todo-items'; echo $object->$todolist;
Contoh:
Menggunakan contoh pembuangan objek yang disediakan:
$x = (object) [ 'completed-count' => '0', 'description' => 'Description String', 'id' => '12345', 'todo-items' => (object) [ 'todo-item' => (object) [ 'completed' => 'false', 'content' => 'content string here', 'created-on' => '2009-04-16T20:33:31Z', 'creator-id' => '23423', 'id' => '234', 'position' => '1', 'responsible-party-id' => '2844499', 'responsible-party-type' => 'Person', 'todo-list-id' => '234234', ], ], ]; echo $x->{'todo-items'}[0]->{'todo-item'}->content;
Petua Tambahan:
Untuk menukar objek kepada tatasusunan, anda boleh menggunakan coretan kod yang disediakan dalam soalan dan jawapan:
public function toArray() { $array = array(); foreach ($this->_data as $key => $value) { if ($value instanceof StdClass) { $array[$key] = $value->toArray(); } else { $array[$key] = $value; } } return $array; }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Sifat Objek dengan Aksara Tidak Sah dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!