Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengakses Sifat Objek PHP dengan Nama Haram Seperti 'todo-item'?

Bagaimanakah Saya Boleh Mengakses Sifat Objek PHP dengan Nama Haram Seperti 'todo-item'?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-24 03:32:35568semak imbas

How Can I Access PHP Object Properties with Illegal Names Like

Mengakses Sifat dengan Nama Haram dalam PHP

Dalam PHP, mengakses sifat objek dengan nama yang tidak sah, seperti yang mengandungi tanda sempang (-), boleh mencabar. Pertimbangkan senario berikut:

Masalah:

Anda telah mendapatkan semula objek daripada panggilan API, dan walaupun var_dumpnya mendedahkan kehadiran sifat "todo-item" , anda tidak dapat mengaksesnya secara langsung menggunakan $object->todo-item.

Penyelesaian:

Terdapat beberapa kaedah untuk mengakses sifat tersebut:

  1. Pengkapsulan Nama Harta:

    PHP membolehkan anda merangkum nama harta benda dalam pendakap kerinting untuk mengaksesnya secara langsung. Ini berfungsi walaupun untuk nama yang menyalahi undang-undang:

    $object->{'todo-items'}
  2. Penugasan Pembolehubah:

    Tugaskan nama harta kepada pembolehubah dan aksesnya menggunakan pembolehubah dalam kurungan segi empat sama:

    $todolist = 'todo-items';
    $object->$todolist
  3. Susunatur Penukaran:

    Tukar objek kepada tatasusunan menggunakan teknik seperti yang digunakan oleh Zend_Config:

    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 PHP dengan Nama Haram Seperti 'todo-item'?. 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