Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Mengakses Sifat Objek dengan Aksara Tidak Sah dalam PHP?

Bagaimanakah Saya Boleh Mengakses Sifat Objek dengan Aksara Tidak Sah dalam PHP?

DDD
Lepaskan: 2024-12-14 01:57:10
asal
560 orang telah melayarinya

How Can I Access Object Properties with Invalid Characters in PHP?

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'};
Salin selepas log masuk

Penyelesaian 2: Nama Pembolehubah dan Gabungan

Sebagai alternatif, tetapkan nama sifat kepada pembolehubah dan gabungkannya dengan $objek pembolehubah:

$todolist = 'todo-items';
echo $object->$todolist;
Salin selepas log masuk

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;
Salin selepas log masuk

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;
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan