Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan Promosi Harta Pembina untuk memudahkan pengisytiharan harta kelas dalam PHP8?

Bagaimana untuk menggunakan Promosi Harta Pembina untuk memudahkan pengisytiharan harta kelas dalam PHP8?

王林
王林asal
2023-10-19 09:16:571178semak imbas

PHP8中如何使用Constructor Property Promotion来简化类的属性声明?

PHP8 ialah versi terbaru bahasa pengaturcaraan PHP, yang memperkenalkan ciri berkuasa, Promosi Harta Pembina. Ciri ini menjadikannya sangat mudah dan elegan untuk menentukan dan memulakan sifat dalam pembina kelas. Artikel ini akan memperkenalkan penggunaan Promosi Harta Pembina secara terperinci dan menggambarkan kemudahannya melalui contoh kod tertentu.

Mula-mula, mari kita lihat cara kita mentakrif dan memulakan sifat dalam kelas dalam PHP7 dan versi sebelumnya. Biasanya, kita perlu mengisytiharkan sifat di bahagian atas kelas dan memulakannya dalam pembina. Struktur kod sedemikian boleh membawa kepada pertindihan dan kod berlebihan.

Sebagai contoh, pertimbangkan kelas Pengguna yang mengandungi atribut nama, umur dan e-mel Kami boleh mentakrifkan dan memulakan atribut ini menggunakan cara PHP7:

class User {
    private $name;
    private $age;
    private $email;

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

Seperti yang anda lihat, di bahagian atas kelas kami perlu mengisytiharkan secara eksplisit. setiap Properties dan memulakannya secara manual dalam pembina. Pendekatan ini menjadikan kod kelihatan verbose dan berulang.

Dalam PHP8, kami boleh menggunakan Promosi Harta Pembina untuk memudahkan kod di atas. Dengan menambahkan pengubah suai akses dan nama harta di hadapan parameter pembina, kita boleh mentakrifkannya secara automatik sebagai harta kelas dan menyelesaikan tugasan harta itu pada masa yang sama.

Berikut ialah contoh kod menggunakan Promosi Harta Pembina:

class User {
    public function __construct(
        private $name,
        private $age,
        private $email
    ) {}
}

Seperti yang anda lihat, dalam PHP8, kami hanya perlu menyenaraikan sifat yang ingin kami takrifkan dalam pembina dan menandakan pengubah suai akses dan nama hartanya. Nama atribut dalam senarai parameter pembina secara automatik akan menjadi atribut kelas, dan operasi tugasan akan diselesaikan dalam pembina. Ini sangat mengurangkan kod berlebihan.

Selain memudahkan pengisytiharan dan permulaan hartanah, Promosi Hartanah Pembina juga membawa faedah tambahan. Pertama, ia meningkatkan kebolehbacaan kod dan menjadikan definisi harta kelas lebih fokus dan jelas. Kedua, ia juga meningkatkan kebolehselenggaraan kod, kerana sifat yang diisytiharkan dalam pembina akan kelihatan di seluruh kelas, menghapuskan keperluan untuk menulis kaedah getter dan setter tambahan.

Selain itu, apabila menggunakan Promosi Hartanah Pembina, anda juga boleh menetapkan nilai lalai untuk hartanah. Jika tiada parameter sepadan disediakan dalam pembina, nilai lalai akan digunakan.

Berikut ialah kod contoh Promosi Harta Pembina dengan nilai lalai:

class User {
    public function __construct(
        private $name = 'John',
        private $age = 20,
        private $email = 'john@example.com'
    ) {}
}

Dalam contoh di atas, jika parameter yang sepadan tidak diberikan semasa membuat objek Pengguna, nilai lalai akan digunakan. Jika tidak, nilai parameter yang diluluskan akan digunakan untuk tugasan.

Untuk meringkaskan, Promosi Harta Pembina ialah ciri berkuasa yang diperkenalkan dalam PHP8, yang menjadikannya sangat mudah dan elegan untuk mentakrif dan memulakan sifat dalam pembina kelas. Ia sangat mengurangkan kod berlebihan dan meningkatkan kebolehbacaan dan kebolehselenggaraan kod. Apabila digunakan, nilai lalai boleh ditetapkan untuk sifat, seterusnya meningkatkan fleksibilitinya. Kemunculan ciri ini sudah pasti membawa pengalaman pengaturcaraan yang lebih menyenangkan dan cekap kepada pembangun PHP.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan Promosi Harta Pembina untuk memudahkan pengisytiharan harta kelas dalam PHP8?. 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