Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

Constructor Property Promotion ใน PHP 8

ใน PHP 8 มี Constructor Property Promotion เพิ่มเข้ามา ช่วยลดโค้ดซ้ำ (boilerplate) มากขณะสร้างอ็อบเจกต์ง่ายๆ คุณสมบัตินี้อนุญาตให้รวมฟิลด์ของคลาส การกำหนดคอนสตรัคเตอร์ และการกำหนดค่าตัวแปร ทั้งหมดในไวยากรณ์เดียว ลงในรายการพารามิเตอร์ของคอนสตรัคเตอร์

เราสามารถพูดได้ว่า แทนที่จะระบุพรอเพอร์ตี้ของคลาสและคอนสตรัคเตอร์แยกกัน เราสามารถรวมทั้งหมดเข้าด้วยกันได้โดยใช้ constructor property promotion

ตัวอย่างที่ 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 สำหรับ Constructor Property Promotion

<?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