ใน PHP 8 จะมีการเพิ่มการโปรโมตคุณสมบัติคอนสตรัคเตอร์ ช่วยลดรหัสสำเร็จรูปจำนวนมากในขณะที่สร้างวัตถุอย่างง่าย คุณลักษณะนี้ช่วยให้เราสามารถรวมฟิลด์คลาส การกำหนดคอนสตรัคเตอร์ และการกำหนดตัวแปร ทั้งหมดนี้อยู่ในรูปแบบเดียว ลงในรายการพารามิเตอร์คอนสตรัคเตอร์
เราสามารถพูดได้ว่าแทนที่จะระบุคุณสมบัติของคลาสและตัวสร้าง เราสามารถรวมคุณสมบัติทั้งหมดเข้าด้วยกันโดยใช้การเลื่อนระดับคุณสมบัติของตัวสร้าง
ตัวอย่าง 1:รหัส PHP 7
<?php class Account { public float $a; public float $b; public float $c; public function __construct( float $a = 0.0, float $b = 0.0, float $c = 0.0, ) { $this->a = $x; $this->b = $y; $this->c = $z; } } ?>
ตัวอย่าง 2:รหัส PHP 8
เราสามารถเขียนโค้ด PHP 7 ด้านบนใหม่เป็น PHP 8 ได้ดังนี้ -
<?php class Account { public function __construct( public float $a = 0.0, public float $b = 0.0, public float $c = 0.0, ) {} } $Account =new Account (10.90,20.0,30.80); print_r($Account->a); print_r($Account->a); print_r($Account->a); ?>
ผลลัพธ์
10.9 20 30.8
ในโค้ดด้านบนนี้ เราได้รวมการกำหนดคุณสมบัติและจำนวนประชากรแบบอินไลน์ในลายเซ็นคอนสตรัคเตอร์ รหัสนี้จะลบการซ้ำซ้อน
ตัวอย่าง 3:รหัส PHP 8 สำหรับการส่งเสริมคุณสมบัติตัวสร้าง
<?php class Employee { public function __construct( public int $id, public string $name, ) {} } $employee = new Employee(11, 'Alex'); print_r($employee->id); print_r($employee->name); ?>
ผลลัพธ์
11 Alex