PHP 7 กำลังมา มีอะไรเพิ่มมาบ้าง ไปดูกันเลย
PHP 7 กำลังมาปลายปี 2015 นี้แล้วนะครับ เตรียมตัวเตรียมใจกันได้เลยครับ ซึ่งปัจจุบัน PHP ที่ออกล่าสุดคือ PHP 5.6 และเวอร์ชั่นต่อไปจะเป็น PHP 7 ซึ่งจะเป็นเวอร์ชั่นหลัก
Feature ใน PHP 7
มาดู Feature ใน PHP 7 บางส่วนนะครับ
การใช้ use แบบ Group
การเรียกใช้งานหนึ่ง use ต่อหนึ่ง Class นั้นค่อนข้างยาวหากมี Root ของ Class ที่เดียวกันก็สามารถใช้ use เดียวได้ เช่น
use Aa\Bb\Cc\One;
use Aa\Bb\Cc\Two;
use Aa\Bb\Cc\Three;
ก็สามารถใช้ use แบบ Group ได้ เช่น
use Aa\Bb\Cc\{
One,
Two,
Three,
};
ตัวดำเนินการ ?? (Operator)
มีการเพิ่มตัวดำเนินการ ?? ในการตรวจสอบค่า เช่น จาก
$id = isset($_GET['id']) ? $_GET['id'] : 'noid';
ไปเป็น
$id = $_GET['id'] ?? 'noid';
ตัวดำเนินการ <=> (Operator)
ตัวดำเนินการนี้จะ return ค่า 0 หากทั้งสองฝั่งมีค่าเท่ากัน return -1 หากค่าซ้ายมีค่ามากกว่า และ 1 หากค่าด้านขวามีค่ามากกว่า เช่น
function check_value($x,$y){
return $x<=>$y;
}
การแสดง Exception
การแสดง Exception สำหรับการ Call ทุกอย่างจะอยู่ภายใต้ try{}catch(){} หากมีการ Call function โดยตรงจะแสดง Fatal Error เช่น
test();
จะแสดง
Fatal Error: Call to undefined function test()
ต้องเขียนให้อยู่ภายใต้ try catch ดังนี้
try{
test();
}catch(EngineException $e){
/*จัดการเมื่อเกิด Exception*/
}
โครงสร้างของ Exception มีการเปลี่ยนแปลง
BaseException (abstract)
-EngineException
--TypeException
-ParseException
-Exception
--ErrorException
--RuntimeException
การ return type
ใน function มีการกำหนดการ return type โดยมีการตรวจสอบจาก runtime เช่น
function test(): int{
return[];
}
test();
จะแสดง Error ดังนี้
Fatal error: Return value of test() must be of the type integer, array returned
หมายความว่าต้องให้ function return int จึงจะถูกต้องนั่นเอง
อีกตัวอย่างการกำหนดการ return type โดยที่ type null และ resource จะไม่ support เช่น
function test($i):int{
return $i;
}
var_dup(test(["123"]));
จะแสดง error
Fatal error: Return value of test() must be of the type integer, array returned
และ
var_dump(test("123"));
จะแสดง
(int)123
ที่มา http://fr.slideshare.net/jpauli/php7-is-coming