Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menukar php kepada tatasusunan dan objek

Bagaimana untuk menukar php kepada tatasusunan dan objek

PHPz
PHPzasal
2023-04-25 10:43:01481semak imbas

Dalam PHP, tatasusunan dan objek ialah dua struktur data biasa yang memainkan peranan penting dalam pemprosesan data. Apabila kita perlu menukar sumber data kepada tatasusunan atau objek, kita selalunya perlu menggunakan beberapa fungsi atau kaedah yang sepadan untuk mencapainya. Berikut akan meneroka secara terperinci teknik berkaitan untuk menukar sumber data kepada tatasusunan dan objek dalam PHP.

1. Tukar tatasusunan kepada objek dalam PHP

Dalam PHP, kaedah untuk menukar tatasusunan kepada objek adalah sangat mudah, kita hanya perlu menggunakan penukaran jenis paksa. Contohnya adalah seperti berikut:

$array = [
    'name' => '张三',
    'age' => 20
];

$object = (object) $array;

echo $object->name;  //输出:张三
echo $object->age;   //输出:20

Dengan menghantar tatasusunan, PHP secara automatik akan menggunakan nama kunci dalam tatasusunan sebagai atribut objek dan nilai kunci sebagai nilai atribut. Kaedah ini sangat mudah dan mudah, dan sesuai untuk penukaran sumber data kecil.

2. Tukar objek kepada tatasusunan

Bertentangan dengan menukar tatasusunan kepada objek, kaedah PHP untuk menukar objek kepada tatasusunan adalah agak mudah. Kita boleh menggunakan fungsi get_object_vars() atau json_decode() untuk mencapai ini. Operasi khusus kedua-dua kaedah ini diperkenalkan di bawah.

  1. fungsi get_object_vars()

fungsi get_object_vars() boleh menukar objek kepada tatasusunan dan mengembalikan tatasusunan bersekutu yang terdiri daripada atribut objek. Contohnya adalah seperti berikut:

class Person {
    public $name = '张三';
    protected $age = 20;
    private $gender = '男';

    function __construct() {
        echo '对象已创建';
    }
}

$person = new Person();

$array = get_object_vars($person);

print_r($array);

Selepas menjalankan kod di atas, hasil output adalah seperti berikut:

对象已创建
Array
(
    [name] => 张三
    [age] => 20
    [*gender] => 男
)

Seperti yang anda boleh lihat daripada keputusan, fungsi get_object_vars() menukar semua atribut dalam objek kepada elemen tatasusunan. Walau bagaimanapun, perlu diingatkan bahawa jika objek mengandungi sifat persendirian atau sifat yang dilindungi, ia akan ditandakan sebagai pembolehubah lemah dan memasukkan asterisk (*) dalam output.

  1. fungsi json_decode()

fungsi json_decode() ialah salah satu fungsi yang biasa digunakan dalam PHP, yang boleh menukar rentetan format JSON kepada tatasusunan atau objek PHP. Apabila kita perlu menukar objek kepada tatasusunan, kita boleh menukar objek itu kepada rentetan format JSON dahulu dan kemudian menghuraikannya melalui fungsi json_decode(). Kod sampel adalah seperti berikut:

class Person {
    public $name = '张三';
    protected $age = 20;
    private $gender = '男';

    function __construct() {
        echo '对象已创建';
    }
}

$person = new Person();

$json = json_encode($person);

$array = json_decode($json, true);

print_r($array);

Selepas melaksanakan kod di atas, output adalah seperti berikut:

对象已创建
Array
(
    [name] => 张三
    [age] => 20
)

Seperti yang dapat dilihat daripada keputusan, fungsi json_decode() boleh menukar semua sifat awam dalam objek kepada elemen Tatasusunan, dan mengabaikan semua sifat peribadi dan dilindungi. Jika anda perlu menukar sifat peribadi dan dilindungi kepada elemen tatasusunan juga, anda boleh menetapkan parameter kedua kepada palsu.

3. Ringkasan

Di atas ialah teknologi yang berkaitan untuk menukar sumber data dalam PHP kepada tatasusunan dan objek. Apabila kita perlu menganalisis dan memproses sumber data tertentu, adalah sangat penting untuk memilih struktur data yang sesuai. Menukar sumber data kepada tatasusunan atau objek memudahkan pemprosesan data yang mesra dan standard. Saya berharap kandungan yang diterangkan dalam artikel ini akan membantu kerja pembangunan majoriti pembangun PHP.

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