ใน 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