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 ขึ้นมากเลยทีเดียว

อ้างอิง

LINE Store 500 Internal Server Error Sticker
สนับสนุน phattarachai.dev
หากบทความใน phattarachai.dev มีประโยชน์กับคุณ โปรดสนับสนุน Sticker และ Theme LINE ที่ผมทำขึ้นได้ทาง เพื่อเป็นกำลังใจให้ผมนำเนื้อหาสาระดี ๆ และ Open Source Library ให้แก่ Laravel Developer ชาวไทยมากขึ้นนะครับ

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

เคล็ดลับ HTML ที่คุณอาจไม่เคยรู้
12 กุมภาพันธ์ 2564
เคล็ดลับ HTML ที่คุณอาจไม่เคยรู้
เลือกรหัสสีบนหน้าจอได้ง่าย ๆ ด้วย Color Picker บน Windows
12 กุมภาพันธ์ 2564
เลือกรหัสสีบนหน้าจอได้ง่าย ๆ ด้วย Color Picker บน Windows
Validation Rule สำหรับตรวจสอบรหัสบัตรประชาชน
12 กุมภาพันธ์ 2564
Validation Rule สำหรับตรวจสอบรหัสบัตรประชาชน