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

มองหา Freelance Web Developer อยู่รึเปล่าครับ?
ทักเข้ามาพูดคุยกันได้เลย ผมพร้อมรับฟัง Requirement และช่วยสร้าง Solution ที่คุณนำไปต่อยอดใช้งานได้จริงในเวลาไม่นานครับ

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

วิธีการให้ git จดจำ password โดยไม่ต้องระบุใหม่ทุกครั้ง
12 กุมภาพันธ์ 2564
วิธีการให้ git จดจำ password โดยไม่ต้องระบุใหม่ทุกครั้ง
วิธีการเช็ค Detect Browser ผู้ใช้จาก Laravel
12 กุมภาพันธ์ 2564
วิธีการเช็ค Detect Browser ผู้ใช้จาก Laravel
ระบบแบบทดสอบประเมินบุคลิกภาพ
12 กุมภาพันธ์ 2564
ระบบแบบทดสอบประเมินบุคลิกภาพ