Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

สวัสดี PHP 7.0.0 อย่างเป็นทางการ

$
0
0

CE1LKH_WYAA_nK1

php7 วันที่ 3 พฤจิกายน 2558 ทีมพัฒนา PHP ได้ปล่อย PHP 7.0.0 ออกมาอย่างเป็นทางการ เป็นการเปลี่ยนแปลงครั้งยิ่งใหญ่ ทั้งตัวภาษา และ Zend engine ซึ่งมีการเพิ่มเติม เปลี่ยนแปลง และ ปรับปรุง feature มากมาย มาดูกันว่ามีอะไรบ้าง มีสถิติที่น่าสนใจจากทีมพัฒนา
10033 commits 48 RFCs 189 contributors

1. ปรับปรุงประสิทธิการทำงาน

ซึ่งบอกว่า PHP 7.0.0 นั้นทำงานเร็วกว่า PHP 5.6 ประมาณ 2 เท่า ลดจำนวน memory ที่ใช้งาน มาดูข้อมูลการทดสอบ performance กันหน่อย จาก Turbocharging the Web with PHP 7 Screen Shot 2558-12-04 at 9.35.50 AM Screen Shot 2558-12-04 at 9.36.10 AM Screen Shot 2558-12-04 at 9.36.24 AM Screen Shot 2558-12-04 at 9.36.38 AM

2. มาดู feature ใหม่ ๆ ที่น่าสนใจกันบ้าง

เคยเขียนอธิบาย feature ใหม่ของ PHP 7 ไว้บ้างแล้ว มาดู feature แปลก ๆ กันบ้าง Null Coalesce Operator มันคือ shorthand operator ของ isset() นั่นเอง ตัวอย่าง code เป็นดังนี้ [gist id="cbc143a8b8b25581b2ff" file="null_coalesce_operator.php"] Combined Comparison Operator หรือ Spaceship operator ( <==> ) ใช้สำหรับการเปรียบเทียบข้อมูล ซึ่งผลการทำงานจะออกมาเป็นตัวเลข 3 ค่า ดังนี้
  • เลขจำนวนเต็มบวก นั่นคือข้อมูลทางซ้ายมากกว่าทางขวา
  • ศูนย์ นั่นคือข้อมูลทางซ้ายและทางขวาเท่ากัน
  • เลขจำนวนเต็มลบ นั่นคือข้อมูลทางซ้ายน้อยกว่าทางขวา
ตัวอย่าง code เป็นดังนี้ [gist id="cbc143a8b8b25581b2ff" file="spaceship_operator.php"] ข้อจำกัดคือ ไม่สามารถใช้กับ Object ได้นะ และไม่สามารถเปรียบเทียบข้อมูลต่อกันได้นะ เช่น 1 <==> 2 <==> 3 Scalar Type Declarations ใช้สำหรับการบังคับให้ชนิดข้อมูลที่ส่งไปยัง method ต่าง ๆ ถูกต้อง ซึ่งมีอยู่ 2 mode คือ
  • Coercive เป็น default คือส่งข้อมูลชิดอะไรไปก็ได้
  • Stricts จะเข้มงวดนั่นเอง
ในความเป็นจริง Stricts มันน่าจะเป็น default นะ !!
มาดูตัวอย่างการใช้ Stricts mode ดีกว่า ถ้าส่งข้อมูลไปผิดชนิดที่ประกาศไว้จะเกิด Exception ทันที [gist id="cbc143a8b8b25581b2ff" file="scalar_type_stricts.php"] กำหนดค่าคงที่ใน define() ได้ ใน php 5.6 นั้นสามารถทำได้ด้วยการใช้ keyword const ส่วนใน php 7.0.0 สามารถกำหนดได้ใน define() แล้ว ตัวอย่าง code เป็นดังนี้ [gist id="cbc143a8b8b25581b2ff" file="define_constant.php"]

อีกอย่างที่ชอบมาก ๆ คือ Exception ของ Engine

ซึ่ง engine ตัวใหม่จะพยายามแปลง error ต่าง ๆ ไปอยู่ในรูปแบบของ Exception เพื่อทำให้ดักจับ error ต่าง ๆ ได้ง่ายขึ้น รวมทั้งสามารถ custom exception ตามที่ต้องการได้อีกด้วย นี่มันภาษา Java เลยนะเนี่ย

ส่วน feature ที่มัน deprecated กับเอาออกไปก็เยอะนะ

เช่น
  • PHP 4 constructor ที่เป็น __construct() ก็ถูก deprecated ไปแล้ว ถ้าใช้งานจะแจ้งว่า E_DREPRECATED ส่วนใน PHP 8 เอาออกแน่นอน
  • Warning date.timezone ถูกเอาออกไปแล้ว ดีใจอย่างมาก
  • PHP tag ใช้ได้อันเดียวนะ คือ standard ของมัน เพื่อลดความสับสนวุ่นวาย
  • ไม่สามารถกำหนดชื่อของ argument ใน method ซ้ำได้แล้ว
  • Server API (SAPI) ถูกเอาออกไปจนสิ้น
  • feature ที่มัน deprecated มาแล้ว ถูกเอาออกไปหมด
Source code ตัวอย่างอยู่ที่ Github::Up1::Hello PHP7 ขอเชิญ Download มาใช้งานกันได้ที่ PHP 7 Download และเชิญ Migrate กันได้แล้วนะ รับรองตายเพียบ !!
พร้อมกับ PHP 7.0.0 กันหรือยัง ? หรือว่า PHP 5.6 ก็ยังไม่ ใช้กัน !!
สวัสดี PHP 7.0.0 +_+ Screen Shot 2558-12-04 at 1.34.29 PM Reference Websites http://www.sitepoint.com/learn-php-7-find-out-whats-new-and-more/ https://github.com/tpunt/PHP7-Reference

Viewing all articles
Browse latest Browse all 1997

Trending Articles