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
DDDasal
2024-12-14 01:57:10526semak imbas

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'};

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!

Kenyataan:
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