Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk memaksa menukar objek php ke array

Bagaimana untuk memaksa menukar objek php ke array

PHPz
PHPzasal
2023-04-18 09:47:32434semak imbas

Dalam PHP, kadangkala kita perlu menukar objek kepada tatasusunan. Biasanya, kita boleh mengakses atau menetapkan nilai objek melalui sifatnya. Tetapi terdapat situasi di mana anda perlu menukar objek kepada tatasusunan, seperti apabila anda perlu menukar objek kepada rentetan JSON atau menghantar sifat objek kepada kaedah.

Dalam PHP, anda boleh menggunakan taip untuk menukar objek kepada tatasusunan. Terdapat fungsi cast terbina dalam array dalam PHP yang boleh menukar objek kepada tatasusunan.

Contoh:

class Person {
  public $name;
  public $age;
  public $gender;

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

$person = new Person("Tom", 25, "male");

$personArray = (array) $person;

print_r($personArray);

Analisis kod:

Dalam contoh di atas, kami mentakrifkan kelas bernama Person, yang mempunyai tiga sifat awam: $name, $age dan $gender. Kami mencipta objek Person dan menyimpannya dalam pembolehubah $person. Seterusnya, kami menggunakan fungsi cast array dalam PHP untuk menukar objek $person ke dalam tatasusunan dan menyimpannya dalam pembolehubah $personArray. Akhir sekali, kami menggunakan fungsi print_r untuk mencetak nilai tatasusunan $personArray.

Apabila menjalankan kod di atas, kita akan mendapati bahawa selepas menukar objek kepada tatasusunan, sifat objek menjadi kunci tatasusunan, dan nilai sifat menjadi nilai tatasusunan. Outputnya adalah seperti berikut:

Array
(
    [name] => Tom
    [age] => 25
    [gender] => male
)

Seperti yang anda lihat, apabila objek dilemparkan ke tatasusunan, atribut objek menjadi kunci tatasusunan, dan nilai atribut menjadi nilai daripada tatasusunan. Ini memudahkan kita mengakses atau melepasi sifat sesuatu objek.

Adalah penting untuk ambil perhatian bahawa apabila menghantar objek ke tatasusunan, sifat peribadi atau dilindungi tidak ditukar kepada tatasusunan. Jadi, jika anda perlu memasukkan nilai semua sifat dalam tatasusunan, anda perlu menetapkannya sebagai sifat awam.

Contoh:

class Person {
  private $firstName;
  protected $lastName;
  public $age;

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

$person = new Person("Tom", "Smith", 25);

$personArray = (array) $person;

print_r($personArray);

Hasil output adalah seperti berikut:

Array
(
    [PersonfirstName] => Tom
    [lastName:Protected] => Smith
    [age] => 25
)

Seperti yang anda lihat, nama atribut persendirian telah diubah suai dalam tatasusunan , dilindungi Nama Harta ditanda. Ini kerana PHP memberi awalan pada sifat peribadi dan dilindungi semasa menghantar untuk mengelakkan konflik nama.

Selepas merumuskan contoh dan analisis di atas, kita boleh membuat kesimpulan berikut:

  1. Dalam PHP, anda boleh menggunakan cast untuk menukar objek kepada tatasusunan.
  2. Apabila objek dilemparkan ke tatasusunan, sifat objek menjadi kunci tatasusunan dan nilai sifat menjadi nilai tatasusunan.
  3. Sifat peribadi atau dilindungi tidak ditukar kepada tatasusunan, ia mesti ditetapkan sebagai harta awam.
  4. Apabila menghantar, PHP memberi awalan pada sifat peribadi dan dilindungi untuk mengelakkan konflik nama.

Di atas ialah beberapa pengetahuan asas tentang menghantar objek PHP ke tatasusunan, tetapi sebenarnya, terdapat banyak cara untuk menukar objek kepada tatasusunan dalam PHP. Oleh itu, dalam aplikasi khusus, adalah perlu untuk memilih kaedah yang paling sesuai untuk penukaran berdasarkan senario perniagaan dan keperluan khusus.

Atas ialah kandungan terperinci Bagaimana untuk memaksa menukar objek php ke array. 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