Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menukar Objek stdClass kepada Kelas Tersuai dalam PHP?

Bagaimana untuk Menukar Objek stdClass kepada Kelas Tersuai dalam PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-26 09:15:111016semak imbas

How to Convert stdClass Objects to Custom Classes in PHP?

Menukar Objek stdClass kepada Kelas Tersuai

Dalam senario di mana sistem storan pihak ketiga hanya mengembalikan objek stdClass, menghantarnya ke dalam penuh- objek baru kelas tertentu menjadi perlu. Walau bagaimanapun, PHP tidak menyediakan kaedah pemutus yang mudah untuk penukaran sedemikian.

Juga Jenis

Keupayaan juggling jenis PHP membenarkan penukaran tertentu, seperti:

  • (int) atau (integer) untuk integer
  • (bool) atau (boolean) untuk boolean
  • (float), (double), atau (nyata) untuk float
  • (rentetan) untuk rentetan
  • (tatasusunan) untuk tatasusunan
  • (objek) untuk objek
  • (tidak ditetapkan) untuk NULL (PHP 5)

Penukaran ini tidak ternilai untuk bekerja dengan objek stdClass, tetapi mereka tidak mencipta tika kelas tertentu.

Pemeta Tersuai

Untuk penukaran menyeluruh, a Kelas Mapper boleh dibuat untuk melakukan penghantaran dari stdClass ke kelas sasaran. Ini melibatkan penentuan kaedah yang menterjemahkan setiap sifat objek stdClass ke dalam sifat yang sepadan dalam kelas sasaran.

Penyelesaian Hackish (Dinasihatkan Berhati-hati)

Sebagai penyelesaian, kod berikut boleh disesuaikan dengan tatasusunan dan objek "pseudocast" kepada kejadian tertentu kelas:

function arrayToObject(array $array, $className) {
    return unserialize(sprintf(
        'O:%d:"%s"%s',
        strlen($className),
        $className,
        strstr(serialize($array), ':')
    ));
}

function objectToObject($instance, $className) {
    return unserialize(sprintf(
        'O:%d:"%s"%s',
        strlen($className),
        $className,
        strstr(strstr(serialize($instance), '"'), ':')
    ));
}

Penyelesaian ini mengubah suai perwakilan bersiri data untuk mewakili kelas sasaran. Walau bagaimanapun, adalah disyorkan untuk menggunakan pendekatan ini dengan berhati-hati kerana kemungkinan kesan sampingan.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Objek stdClass kepada Kelas Tersuai 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