Rumah >pembangunan bahagian belakang >tutorial php >PHP ews: Promosi Harta Pembina
Promosi Harta Pembina ialah ciri yang diperkenalkan dalam PHP 8 yang memudahkan pengisytiharan dan permulaan harta dalam kelas. Sebelum PHP 8, anda perlu mengisytiharkan sifat kelas secara eksplisit dan kemudian memulakannya di dalam pembina. Dengan ciri ini, anda boleh mengisytiharkan dan memulakan sifat terus dalam senarai parameter pembina, mengurangkan kod boilerplate.
Sintaks Tradisional (Sebelum PHP 8)
class Product { private string $name; private float $price; public function __construct(string $name, float $price) { $this->name = $name; $this->price = $price; } }
Sintaks Promosi Harta Pembina (PHP 8)
class Product { public function __construct( private string $name, private float $price ) {} }
Kebaikan
Mengurangkan Kod Boilerplate:
Meningkatkan Kebolehbacaan:
Menyokong Ketidakbolehubah:
Nota
Pengubah Keterlihatan:
Nilai Lalai:
class Product { public function __construct( private string $name = 'Unnamed', private float $price = 0.0 ) {} }
Mencampurkan Hartanah Digalakkan dan Tidak Digalakkan:
class Product { private string $category; public function __construct( private string $name, private float $price ) { $this->category = 'General'; } }
Kes Penggunaan
Promosi Harta Pembina amat berguna untuk kelas mudah seperti DTO (Objek Pemindahan Data), di mana tujuan utamanya adalah untuk menyimpan data.
class CustomerDTO { public function __construct( public string $name, public string $email, public ?string $phone = null ) {} }
Kesimpulan
Promosi Harta Pembina ialah ciri hebat dalam PHP 8 yang meningkatkan produktiviti dan mengurangkan kerumitan kod. Ia sesuai untuk kelas dengan berbilang sifat yang memerlukan permulaan yang ringkas dan jelas.
Dalam PHP 8, Atribut (juga dikenali sebagai Anotasi) boleh digabungkan dengan lancar dengan Promosi Harta Pembina, menghasilkan kod yang lebih bersih dan lebih ekspresif, terutamanya dalam senario di mana metadata perlu dikaitkan dengan sifat.
Integrasi dengan Promosi Hartanah Pembina
Dengan Promosi Hartanah Pembina, sifat ditakrifkan terus dalam pembina. Anda boleh menggunakan Atribut untuk menghiasi sifat ini dan menambah maklumat kontekstual tanpa perlu mengisytiharkan sifat tersebut secara berasingan.
Contoh Praktikal
Andaikan anda sedang mengusahakan DTO (Data Transfer Object) dan ingin memetakan sifat kepada lajur pangkalan data
Tanpa Promosi Hartanah Pembina
class Product { private string $name; private float $price; public function __construct(string $name, float $price) { $this->name = $name; $this->price = $price; } }
Dengan Promosi Hartanah Pembina
class Product { public function __construct( private string $name, private float $price ) {} }
Faedah Integrasi
Kod Boilerplate Terkurang:
Kod Lebih Bersih, Lebih Boleh Dibaca:
Fleksibiliti dengan Refleksi:
Mengakses Atribut dengan Refleksi
class Product { public function __construct( private string $name = 'Unnamed', private float $price = 0.0 ) {} }
Penjelasan Kod
Mentakrifkan Atribut Lajur:
Menambahkan Atribut pada Parameter Pembina:
Menggunakan Refleksi:
Mengakses Pembina:
Lelaran Melewati Parameter:
Mengambil Atribut:
Membuat Atribut:
Metadata Mencetak:
Output:
class Product { private string $category; public function __construct( private string $name, private float $price ) { $this->category = 'General'; } }
Kes Penggunaan Biasa
Pemetaan Pangkalan Data:
Pengesahan Data:
Siri/Penyahserikatan:
Kesimpulan
Penyatuan Promosi Harta Pembina dengan Atribut menyediakan cara yang berkuasa dan ringkas untuk menstruktur kelas dalam PHP. Ini amat berguna dalam sistem yang bergantung pada metadata, seperti ORM, pengesahan atau siri, menjadikan kod lebih ekspresif dan teratur.
Atas ialah kandungan terperinci PHP ews: Promosi Harta Pembina. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!