Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar tatasusunan PHP kepada tatasusunan objek JSON

Bagaimana untuk menukar tatasusunan PHP kepada tatasusunan objek JSON

PHPz
PHPzasal
2023-04-19 09:20:06459semak imbas

Menukar tatasusunan kepada tatasusunan objek JSON atau tatasusunan objek dalam PHP ialah tugas yang sering perlu dilakukan. Artikel ini menerangkan cara melaksanakan fungsi ini melalui kod sampel.

Tukar tatasusunan PHP kepada tatasusunan objek JSON

Pertama, kita perlu menentukan tatasusunan PHP yang mengandungi pelbagai tatasusunan bersekutu. Contohnya adalah seperti berikut:

$data = array(
    array(
        'name' => 'John',
        'age' => 30
    ),
    array(
        'name' => 'Mary',
        'age' => 25
    ),
    array(
        'name' => 'Peter',
        'age' => 35
    )
);

Seterusnya, kita boleh menggunakan fungsi terbina dalam PHP json_encode() untuk menukar tatasusunan PHP ini kepada tatasusunan objek JSON. Contohnya adalah seperti berikut:

$json_data = json_encode($data);

Dengan kod di atas, kami menukar tatasusunan PHP $data kepada tatasusunan objek JSON $json_data. Hasil penukaran adalah seperti berikut:

[
    {"name":"John","age":30},
    {"name":"Mary","age":25},
    {"name":"Peter","age":35}
]

tatasusunan PHP ditukar kepada tatasusunan objek yang mengandungi kaedah dalam tatasusunan objek JSON

Dalam beberapa kes, kita perlu menukar tatasusunan PHP kepada tatasusunan objek JSON, di mana Setiap objek mengandungi kaedah sebagai tambahan kepada sifat. Untuk mencapai fungsi ini, kita boleh menggunakan kelas tanpa nama dalam PHP. Contohnya adalah seperti berikut:

$data = array(
    new class('John', 30) {
        public $name;
        public $age;

        public function __construct($name, $age) {
            $this->name = $name;
            $this->age = $age;
        }

        public function sayHello() {
            echo 'Hello, my name is ' . $this->name;
        }
    },
    new class('Mary', 25) {
        public $name;
        public $age;

        public function __construct($name, $age) {
            $this->name = $name;
            $this->age = $age;
        }

        public function sayHello() {
            echo 'Hello, my name is ' . $this->name;
        }
    },
    new class('Peter', 35) {
        public $name;
        public $age;

        public function __construct($name, $age) {
            $this->name = $name;
            $this->age = $age;
        }

        public function sayHello() {
            echo 'Hello, my name is ' . $this->name;
        }
    }
);

Dalam kod di atas, kami mentakrifkan tatasusunan PHP $data, setiap elemen adalah contoh kelas tanpa nama. Kelas tanpa nama mengandungi sifat $name dan $age dan kaedah sayHello(). Seterusnya, kita boleh menukar tatasusunan PHP $data kepada tatasusunan objek JSON melalui fungsi json_encode().

$json_data = json_encode($data);

Hasil penukaran adalah seperti berikut:

[
    {"name":"John","age":30},
    {"name":"Mary","age":25},
    {"name":"Peter","age":35}
]

Kaedah sayHello() tidak termasuk dalam hasil di atas, kerana apabila menukar objek PHP kepada objek JSON, hanya atribut akan disertakan, dan Kaedah tidak akan disertakan.

Tukar tatasusunan PHP kepada tatasusunan objek yang mengandungi kaedah dalam tatasusunan objek JSON

Dalam beberapa kes, kita perlu menukar tatasusunan PHP kepada tatasusunan objek JSON, di mana setiap objek mempunyai Juga termasuk kaedah. Untuk mencapai fungsi ini, kita boleh menggunakan warisan kelas. Contohnya adalah seperti berikut:

class Person {
    public $name;
    public $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }

    public function sayHello() {
        echo 'Hello, my name is ' . $this->name;
    }
}

class John extends Person {
    public function sayHello() {
        echo 'Hello, my name is ' . $this->name . ' and I am John';
    }
}

class Mary extends Person {
    public function sayHello() {
        echo 'Hello, my name is ' . $this->name . ' and I am Mary';
    }
}

class Peter extends Person {
    public function sayHello() {
        echo 'Hello, my name is ' . $this->name . ' and I am Peter';
    }
}

$data = array(
    new John('John', 30),
    new Mary('Mary', 25),
    new Peter('Peter', 35)
);

$json_data = json_encode($data);

Dalam kod di atas, kami mentakrifkan kelas Orang dan tiga subkelasnya John, Mary dan Peter. Ketiga-tiga subkelas ini semuanya mewarisi daripada kelas Person dan mengatasi kaedah sayHello(). Seterusnya, kami mentakrifkan tatasusunan PHP $data, yang mengandungi contoh John, Mary dan Peter. Akhir sekali, kami menukar tatasusunan PHP $data kepada tatasusunan objek JSON dengan memanggil fungsi json_encode().

Hasil penukaran adalah seperti berikut:

[
    {"name":"John","age":30},
    {"name":"Mary","age":25},
    {"name":"Peter","age":35}
]

Seperti contoh sebelumnya, kaedah sayHello() tidak termasuk dalam hasil di atas. Jika anda perlu memasukkan kaedah dalam tatasusunan objek JSON, anda perlu menukar kaedah ini sebagai atribut.

Ringkasan

Artikel ini menerangkan cara menukar tatasusunan kepada tatasusunan objek JSON atau tatasusunan objek dalam PHP, dan termasuk beberapa contoh kes khas, seperti: jika objek dalam tatasusunan mengandungi kaedah, Bagaimana untuk membuat penukaran. Semoga contoh-contoh ini berguna untuk kerja atau kajian anda.

Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan PHP kepada tatasusunan objek JSON. 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