PHP 8.1 เพิ่มการรองรับ Array unpacking ด้วย string keys

12 กุมภาพันธ์ 2564
PHP 8.1 เพิ่มการรองรับ Array unpacking ด้วย string keys

ตั้งแต่ PHP 7.4 ได้มีการรองรับการทำ array unpack อยู่แล้ว ซึ่งมีความสามารถเหมือน Object spreading ใน javascript แต่ว่ารองรับการใช้งานเฉพาะกรณีที่ key เป็น integer เท่านั้น ใน PHP 8.1 ได้เพิ่มการรองรับ array unpack แบบที่ใช้ string เป็น key ได้แล้ว

array unpack ใน PHP 7.4 ใช้ได้กับ array ที่มี key เป็น integer เท่านั้น

[1, ...[2, 3, 4], 5]

// ผลลัพธ์
[1, 2, 3, 4, 5]

แต่ถ้าเราต้องการรวม array ที่มี key เป็น String ใน PHP 7.4 เราต้องใช้ function array_merge แบบนี้

$defaults = ["a" => 1, "b" => 2];
$input = ["a" => 3]; 

// PHP 7.4
$actual = array_merge($defaults, $input);

ตั้งแต่ PHP 8.1 เราสามารถใช้ array unpack เขียนแบบนี้ได้

// ใช้แบบนี้:
$actual = [...$defaults, ...$input];

// หรือแบบนี้ก็ได้
$actual = ["a" => 1, "b" => 2, ...$input];

// สามารถแทรกระหว่างกลาง array ได้เช่นกัน
['a' => 1, ...['b' => 2, 'c' => 3], 'd' => 4]
// ผลลัพธ์
['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4]

โดยผลลัพธ์จากการทำ array unpack จะเหมือนกับการเรียกใช้ function array_merge แต่จะทำให้ code ของเราดู clean ขึ้นมากเลยทีเดียว

อ้างอิง

Phattarachai Chaimongkol
เกี่ยวกับ phattarachai.dev

สวัสดีครับ เป็น Full Stack Web Developer สามารถดูแลงานทั้งระบบได้ ทำงานสายนี้มากว่า 10 ปี ผ่านงานทางภาครัฐ เป็นที่ปรึกษาบริษัทเอกชน มีงาน Web App ทั้งเล็กและใหญ่ ระบบ Inventory, งาน ERP พร้อมใช้ประสบการณ์ที่มีแก้ไขปัญหาธุรกิจให้ลูกค้าครับ

เรื่องล่าสุด

งานพัฒนา Platform Video E-learning
12 กุมภาพันธ์ 2564
งานพัฒนา Platform Video E-learning
รับงาน Web Scrapping อ่านข้อมูลเว็บไซต์ส่งแจ้งเตือน Line Notification
12 กุมภาพันธ์ 2564
รับงาน Web Scrapping อ่านข้อมูลเว็บไซต์ส่งแจ้งเตือน Line Notification
รับงาน ดึงข้อมูลโพสต์ Facebook Group / รูปภาพ / เนื้อหา ลงไฟล์ ส่งเข้า Google Drive
12 กุมภาพันธ์ 2564
รับงาน ดึงข้อมูลโพสต์ Facebook Group / รูปภาพ / เนื้อหา ลงไฟล์ ส่งเข้า Google Drive