PHP 7 กำลังมา มีอะไรเพิ่มมาบ้าง ไปดูกันเลย

wave

PHP 7 กำลังมา มีอะไรเพิ่มมาบ้าง ไปดูกันเลย

มานพ กองอุ่น 24 พ.ค. 2015 10:29:50 8,502

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

ความคิดเห็น