PHP 8.0 มาแล้ว!!!
บทความนี้จะเขียนเฉพาะหัวข้อที่ส่วนตัวคิดว่าเป็นสิ่งที่น่าสนใจสำหรับ PHP 8.0 จะไม่ครอบคลุมทั้งหมด แต่จะทิ้งลิงก์สำหรับข้อมูลตัวเต็มไว้ให้ท้ายบทความครับ
Named arguments (ใช้ชื่อ argument ในการส่งค่าได้)
ในตัวอย่างนี้ดูแล้วอาจจะงงสักหน่อย ต้องมาดูที่ว่า function นี้ถูกประกาศยังไง
ใน feature นี้อธิบายง่าย ๆ คือเราสามารถ "เลือก" ที่จะส่ง argument ยังไงก็ได้หากมีการกำหนดชื่อของ argument ที่ส่ง ไม่จำเป็นต้องลำดับ argument ด้วย
ในตัวอย่างของ PHP 8 จะเห็นว่าเขาเลือกส่ง $string (อันนี้ไม่ได้ใช้ Named argument ส่งแบบปกติ) และ double_encode (อันนี้มีการใช้ละ คือเลือกส่งเฉพาะ double_encode เป็น false) ส่วนตัวแปรที่เหลือปล่อยให้เป็นค่า default ไปตามใน doc ครับ
Constructor property promotion (ประกาศ property ผ่าน constructor)
Match expression
ครั้งหนึ่งในชีวิต PHP programmer น่าจะมีคิดกันบ้างว่าทำไมต้องมาพิมพ์ break; หลาย ๆ บรรทัดด้วยวะ ซึ่งก็มี feature นี้เข้ามาช่วยแล้ว การใช้งานก็ตรงไปตรงมาเช่นเคย แต่จะใช้ได้เฉพาะกับการ assign ค่าหรือ return ค่าเท่านั้น ใช้กับ switch statement ที่มีหลายบรรทัดไม่ได้
Nullsafe operator
Consistent type errors for internal functions (ปา error ใส่หน้าเมื่อมีข้อผิดพลาดในการใช้งาน built-in function)
จากเดิมเวลาเราทำอะไรสักอย่างผิดกับพวก built-in function จะมีแค่ข้อความโง่ ๆ แจ้งเตือนออกมาเป็น error ให้เห็น แต่ใน PHP 8 คือการ throw exception ออกมาเลย เราสามารถจัดการด้วย try / catch ได้ ซึ่งทำให้เราจัดการกับ input จาก user ที่ต้องผ่าน function พวกนี้ได้ง่ายขึ้น
Allow trailing comma in parameter list (ใส่ , ทิ้งไว้ที่ parameter ตัวสุดท้ายของ function ได้)
ในส่วนนี้จะเหมือน array คือตัวสุดท้ายสามารถทิ้ง , ไว้ได้โดยไม่ error
สรุป
จริง ๆ ยังมีอีกมาก แต่ผมหยิบมาเฉพาะที่เขาประกาศอยู่หน้าเว็บและดูน่าสนใจสำหรับตัวผมเท่านั้น สามารถไปอ่านประกาศตัวเต็มได้ที่ https://www.php.net/releases/8.0/en.php
ความคิดเห็น
แสดงความคิดเห็น