3 คะแนน โดย xguru 2020-02-04 | 2 ความคิดเห็น | แชร์ทาง WhatsApp

สิ่งที่จะถูกเพิ่มเข้ามาใน PHP 8 ที่จะประกาศในช่วงปลายปีนี้

  • Union type : รูปแบบ int|float, ส่วน |null คือ ?

  • JIT

  • ชนิดคืนค่า static

  • WeakMap สำหรับเก็บรีเฟอเรนซ์ของอ็อบเจ็กต์

  • ใช้ ::class กับอ็อบเจ็กต์แทน get_class()

  • DateTime::createFromInterface()

  • ฟังก์ชัน fdiv

  • type annotation สำหรับฟังก์ชันที่มีมาในตัว

การเปลี่ยนแปลงที่ทำให้ความเข้ากันได้พัง

  • ฟังก์ชันที่มีมาในตัวก็จะโยนข้อยกเว้น TypeErrors ด้วย

  • ข้อผิดพลาดจำนวนมากที่ก่อนหน้านี้แค่แสดงคำเตือน จะถูกเปลี่ยนให้โยนข้อยกเว้นที่เหมาะสม

  • ระดับการรายงานข้อผิดพลาดเริ่มต้นจะเป็น E_ALL ทำให้ข้อผิดพลาดจำนวนมากที่เคยถูกมองข้ามแบบเงียบ ๆ ถูกแสดงออกมา

  • ตัวดำเนินการ @ จะไม่เพิกเฉยต่อข้อผิดพลาดร้ายแรงอีกต่อไป

  • ปรับลำดับของตัวดำเนินการเชื่อม +, - และ . โดย +/- จะถูกประมวลผลก่อน .

2 ความคิดเห็น

 
kunggom 2020-02-04

สมกับเป็นการอัปเกรดเวอร์ชันใหญ่จริง ๆ ตรงที่ทำให้ความเข้ากันได้พังนี่แหละ! (…)

 
xguru 2020-02-04

ดูเหมือนว่าส่วนที่เปลี่ยนแปลงใหญ่จริง ๆ จะเป็นเรื่องการจัดการ error และ exception ด้านล่าง มากกว่าฟีเจอร์ใหม่เสียอีก

ถ้าอัปเกรดแบบไม่ทันระวัง เว็บไซต์ PHP ที่เมื่อก่อนแค่เงียบ ๆ แล้วข้าม error ไป อาจเริ่มมีปัญหาได้