Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menyimpan tatasusunan objek dalam php

Bagaimana untuk menyimpan tatasusunan objek dalam php

PHPz
PHPzasal
2023-04-18 09:06:06547semak imbas

Dalam bahasa PHP, tatasusunan ialah jenis data yang sangat biasa, yang boleh menyimpan berbilang nilai dan mengakses setiap nilai melalui subskrip. Selain itu, PHP juga menyokong tatasusunan objek, iaitu setiap elemen dalam tatasusunan adalah objek. Dalam pembangunan sebenar, kita selalunya perlu menyimpan tatasusunan objek dalam aplikasi dan melaksanakan operasi seterusnya. Artikel ini akan memperkenalkan cara PHP menyimpan tatasusunan objek.

1. Sirikan tatasusunan objek ke dalam rentetan dan simpannya

Tatasusunan objek boleh disimpan dengan mensirikannya ke dalam rentetan, dan kemudian menyahsirinya menjadi tatasusunan objek apabila diperlukan. PHP menyediakan fungsi bersiri dan penyahseriran serialize() dan unserialize().

Kod sampel adalah seperti berikut:

// 定义一个对象
class Person {
  public $name;
  public $age;
}

// 初始化对象数组
$persons = [
  new Person('Tom', 18),
  new Person('Jerry', 20),
];

// 序列化对象数组
$serialized = serialize($persons);

// 存储到文件中
file_put_contents('persons.txt', $serialized);

// 从文件中读取并反序列化
$serialized = file_get_contents('persons.txt');
$persons = unserialize($serialized);

Mensiri tatasusunan objek ke dalam rentetan boleh menyimpan dan menghantar data dengan mudah, tetapi terdapat juga beberapa masalah. Pertama sekali, rentetan bersiri tidak boleh dilihat dan diubah suai secara langsung, jadi lebih rumit untuk menyahpepijat dan menyelenggara. Kedua, rentetan bersiri hanya sesuai untuk menyimpan tatasusunan objek ringkas Apabila tatasusunan objek mengandungi sub-objek atau sumber, rentetan bersiri mungkin menjadi sangat besar.

2. Tukar tatasusunan objek kepada format JSON dan simpannya

Berbanding dengan mensirikannya menjadi rentetan, menukar tatasusunan objek kepada format JSON boleh memudahkan anda melihat dan mengubah suai data. Format JSON ialah format pertukaran data ringan yang menyokong berbilang bahasa pengaturcaraan, termasuk PHP. PHP menyediakan fungsi json_encode() dan json_decode(), yang boleh menukar tatasusunan objek kepada rentetan format JSON dan menghuraikan tatasusunan objek daripada rentetan format JSON.

Kod sampel adalah seperti berikut:

// 定义一个对象
class Person {
  public $name;
  public $age;
}

// 初始化对象数组
$persons = [
  new Person('Tom', 18),
  new Person('Jerry', 20),
];

// 将对象数组转换为JSON格式字符串
$json = json_encode($persons);

// 存储到文件中
file_put_contents('persons.json', $json);

// 从文件中读取并解析为对象数组
$json = file_get_contents('persons.json');
$persons = json_decode($json);

Menukar tatasusunan objek kepada format JSON boleh memudahkan tontonan dan pengubahsuaian data, serta boleh menyimpan tatasusunan objek yang kompleks. Walau bagaimanapun, memandangkan format JSON mengambil lebih banyak ruang daripada format rentetan, mungkin terdapat isu prestasi tertentu apabila menyimpan tatasusunan objek berskala besar.

3. Tukar tatasusunan objek kepada aliran binari bersiri dan simpan

Pelanjutan msgpack dalam PHP menyediakan kaedah untuk mensiri tatasusunan objek ke dalam aliran binari, yang boleh Mengurangkan ruang storan apabila menyimpan tatasusunan objek , dan juga meningkatkan kecekapan penghantaran dan penghuraian data. Di sini kami memperkenalkan kaedah menggunakan msgpack untuk mengembangkan tatasusunan objek storan.

Pertama, pastikan PHP telah memasang sambungan msgpack. Kemudian, anda boleh menggunakan fungsi msgpack_pack() dan msgpack_unpack() untuk mensiri tatasusunan objek kepada aliran binari dan menghuraikan tatasusunan objek daripada aliran binari, masing-masing.

Kod sampel adalah seperti berikut:

// 定义一个对象
class Person {
  public $name;
  public $age;
}

// 初始化对象数组
$persons = [
  new Person('Tom', 18),
  new Person('Jerry', 20),
];

// 将对象数组序列化为二进制流
$packed = msgpack_pack($persons);

// 存储到文件中
file_put_contents('persons.bin', $packed);

// 从文件中读取并解析为对象数组
$packed = file_get_contents('persons.bin');
$persons = msgpack_unpack($packed);

Mensiri tatasusunan objek ke dalam strim binari boleh mengoptimumkan ruang storan dan menjadi lebih cekap semasa penghantaran dan penghuraian data. Walau bagaimanapun, kerana aliran binari menyusahkan untuk dilihat dan diubah suai, mungkin terdapat kesukaran tertentu dalam penyahpepijatan dan penyelenggaraan.

Kesimpulan

Artikel ini memperkenalkan tiga kaedah menyimpan tatasusunan objek dalam PHP, iaitu siri ke dalam rentetan, penukaran ke dalam format JSON dan siri ke dalam strim binari. Mengikut keperluan perniagaan dan ciri data yang berbeza, memilih kaedah storan yang berbeza akan membantu mengoptimumkan ruang storan, meningkatkan kecekapan penghantaran data, dan juga memudahkan pembangunan dan penyelenggaraan program.

Atas ialah kandungan terperinci Bagaimana untuk menyimpan tatasusunan objek 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