ฟีเจอร์ PHP 8 สุดเจ๋ง! ที่จะทำให้ Code ของเรา Clean ขึ้น

·
18 พฤศจิกายน 2024
·
Web Development

เพื่อนๆ ลองจินตนาการดูว่าถ้าเรากำลังทำงานกับโปรเจกต์ PHP ที่เต็มไปด้วยโค้ดที่ต้องคอยเช็ค null ซ้ำซาก เขียน switch ยาวเหยียด หรือใช้เวลานั่งเดาว่าพารามิเตอร์ตัวไหนคืออะไรในการเรียกแต่ละฟังก์ชัน… เหนื่อยใช่ไหมครับ?

ฟีเจอร์ PHP 8 สุดเจ๋ง! ที่จะทำให้ Code ของเรา Clean ขึ้น

แต่ตอนนี้ PHP 8 เข้ามาช่วยชีวิตพวกเราด้วยฟีเจอร์ใหม่ ๆ ที่จะทำให้การเขียนโค้ดสนุกขึ้น โค้ดสะอาดขึ้น และลดความเสี่ยงต่อข้อผิดพลาดไปเยอะเลย ฟีเจอร์เหล่านี้จะช่วยให้เราหลุดพ้นจากความยุ่งยากใน PHP เวอร์ชั่นเก่าๆ และเปิดโอกาสให้เราได้สร้างโค้ดที่เข้าใจง่ายและดูแลรักษาได้ดียิ่งขึ้นนั่นเอง

มาดูกันว่าฟีเจอร์เจ๋ง ๆ ของ PHP 8 มีอะไรบ้าง และมันจะเปลี่ยนวิธีการเขียนโค้ดของเราได้อย่างไร

ฟีเจอร์เจ๋งๆ ที่ PHP 8 ได้อัปเดตเข้ามา

1.Named Arguments

นี่คือฟีเจอร์ที่ช่วยให้การเรียกใช้ฟังก์ชันไม่ใช่เรื่องงง ๆ อีกต่อไป เพื่อนๆ สามารถระบุชื่อพารามิเตอร์ที่ต้องการได้โดยตรง เหมาะมากกับฟังก์ชันที่มีพารามิเตอร์เยอะๆ

ก่อนใช้ Named Arguments:

sendEmail('hello@example.com', 'Welcome!', null, true);

เราอาจต้องเปิดโค้ดฟังก์ชันขึ้นมาดูว่า null และ true มันหมายถึงอะไรแน่ ๆ

หลังใช้ Named Arguments:

sendEmail(
    to: 'hello@example.com',
    subject: 'Welcome!',
    attachment: null,
    isImportant: true
);

แบบนี้ชัดเจนขึ้นเยอะ อ่านแล้วก็รู้เลยว่า Arguments แต่ละ Arguments ทำอะไรบ้าง

2.Union Types

เคยเจอปัญหาที่ต้องเช็คประเภทของตัวแปรในฟังก์ชันไหมครับ? PHP 8 ช่วยแก้ปัญหานี้ด้วย Union Types ซึ่งช่วยให้ฟังก์ชันรองรับหลายประเภทได้อย่างชัดเจน

ตัวอย่าง:

function setData(int|string $data) {
    // โค้ดที่ต้องการ
}

โค้ดข้างบนหมายความว่า ฟังก์ชันนี้ยอมรับได้ทั้ง int และ string โดยไม่ต้องเขียนเช็คแยกเองอีกต่อไป

3.Match Expressions

ถ้าเราเบื่อ switch แบบเดิม ๆ ฟีเจอร์นี้เหมาะกับเรามากเลย Match Expressions ช่วยให้การเขียนเงื่อนไขกระชับและใช้งานได้ง่ายกว่าเดิม

ตัวอย่าง:

$message = match ($status) {
    'success' => 'Operation was successful',
    'error' => 'There was an error',
    default => 'Unknown status',
};

เปรียบเทียบกับ switch ที่ต้องมี break ทุกครั้ง แบบนี้ชัดเจนกว่าเยอะ แถมยังลดข้อผิดพลาดได้ด้วย

4.Nullsafe Operator

เคยไหมครับ ต้องเช็ค null ซ้ำแล้วซ้ำอีกจนโค้ดรกไปหมด? Nullsafe Operator คือคำตอบ

ก่อนใช้ Nullsafe Operator:

if ($user !== null && $user->profile !== null) {
    $bio = $user->profile->bio;
} else {
    $bio = null;
}

หลังใช้ Nullsafe Operator:

$bio = $user?->profile?->bio;

โค้ดดูสะอาดขึ้นและง่ายต่อการอ่านทันที

5.JIT (Just-In-Time) Compilation

ถึงแม้ฟีเจอร์นี้อาจไม่ได้มีผลชัดเจนสำหรับงานเว็บทั่วไป แต่ถ้าเราทำงานที่ต้องใช้การคำนวณหนักๆ เช่น การประมวลผลภาพ หรือ Machine Learning JIT จะช่วยเพิ่มประสิทธิภาพได้อย่างเห็นผล

ทำไมต้องอัปเกรด?

  1. โค้ดสะอาดขึ้น: ฟีเจอร์อย่าง Named Arguments และ Nullsafe Operator ช่วยให้โค้ดอ่านง่าย ไม่ต้องนั่งเดาหรือเช็ค null ซ้ำ ๆ
  2. ประสิทธิภาพดีกว่าเดิม: JIT ทำให้ PHP สามารถประมวลผลได้เร็วขึ้น เหมาะสำหรับงานที่ซับซ้อน
  3. รองรับอนาคต: การใช้ฟีเจอร์ใหม่ช่วยให้โค้ดของคุณพร้อมรองรับการเปลี่ยนแปลงในอนาคต และลดค่าใช้จ่ายในการบำรุงรักษา

แล้วถ้าอัปเกรดจะยุ่งยากไหม?

ไม่ต้องห่วงครับ เพราะมีเครื่องมืออย่าง PHPCompatibility ที่ช่วยตรวจสอบว่าโค้ดของเรารองรับ PHP 8 หรือไม่

สรุป

ถ้าเพื่อนๆ อยากเขียนโค้ด PHP ให้ทันสมัยขึ้น ง่ายต่อการบำรุงรักษา และมีประสิทธิภาพ ฟีเจอร์ใน PHP 8 เหล่านี้คือตัวช่วยที่เราไม่ควรมองข้าม

ลองดูครับ แล้วเพื่อนๆ จะรัก PHP 8 แบบผม! (มั่งนะ) 😊