07/09/2018, 10:19

PHP 7 Có Gì Mới

Đúng như dự đoán sự ra đời của PHP phiên bản 5.x nhanh chóng được thay thế bởi phiên bản tiếp theo của nó PHP 7 . Phiên bản tiếp theo của PHP này được Zend (công ty đứng sau hỗ trợ quá trình phát triển của PHP) sẽ chính thức cho ra mắt vào cuối năm nay. Sau một thời gian dài bình chọn bởi các ...

Đúng như dự đoán sự ra đời của PHP phiên bản 5.x nhanh chóng được thay thế bởi phiên bản tiếp theo của nó PHP 7. Phiên bản tiếp theo của PHP này được Zend (công ty đứng sau hỗ trợ quá trình phát triển của PHP) sẽ chính thức cho ra mắt vào cuối năm nay. Sau một thời gian dài bình chọn bởi các nhà phát triển có đóng góp vào dự án và cộng đồng yêu thích PHP, phiên bản tiếp theo này sẽ được lấy tên là PHP7 thay vì PHP 5.7. Có rất nhiều features mới được giới thiệu trong phiên bản PHP 7 nhưng trong khuôn khổ bài viết này tôi chỉ muốn tập trung vào một số features phổ biến nhất.

Type Hint và Return Type

PHP là ngôn ngữ scripting và nó không yêu cầu việc phải gợi ý kiểu dữ liệu khi khai báo biến. Từ các phiên bản 5.x trước đây PHP đã giới thiệu tính năng gợi ý kiểu dữ liệu cho biến hay còn gọi là type hinting. Phiên bản PHP 7 giới thiệu thêm tính năng return type áp dụng cho hàm:

function double(int $value)
{
   return 2 * $value;
}

Nhận Xét Về Type Hint Trong PHP 7

Rất nhiều người cho rằng việc giới thiệu Type Hint trong PHP 7 là một sự cải tiến đáng kể nhất là khi lập trình viên phải viết các lớp (class) kế thừa các lớp khác hoặc implement một interface. Inheritance (kế thừa) và interface đều yêu cầu tới sự chính xác trong khi khai báo kiểu dữ liệu cho tham số đầu vào hay kết quả trả về.

PHP 7 Type Hint

Tuy nhiên một số ý kiến lại cho rằng việc này sẽ khiến PHP thành một ngôn ngữ có cú pháp quá chặt chẽ giống như các ngôn ngữ Java hay C khiến mất đi sự linh hoạt trong ngôn ngữ này.

Toán Tử Spaceship

Toán tử này được ra đời để giải quyết một vấn đề rất hay gặp khi lập trình đó là so sánh 2 số. Ví dụ, trong hàm compare ở dưới chúng ta cần so sảnh 2 biến $a và $b và giá trị của hàm này sẽ là 1 trong 3 giá trị 0, 1 hoặc -1.

function compare($a , $b) {
    return ($a < $b) ? -1 : (($a > $b) ? 1 : 0);
}

Với cách viết cũ này sẽ chỉ tiện dụng nếu như $a hoặc $b là các biến trực tiếp như ở trên. Tuy nhiên trong trường hợp $a và $bkhông phải là biến thông thường mà là các biểu thức (expression) phức tạp thì việc so sánh này cần phải tách ra thành nhiều dòng lệnh khác nhau. Trong PHP 7 việc so sánh này trở lên đơn giản chỉ với một dòng lệnh:

$a <=> $b;

Toán Tử Null Coalesce

Toán tử Null Coalesce tạm dịch là toán tử hợp nhất null được giới thiệu để giúp việc gán giá trị cho một biến trở nên đơn giản hơn khi khi biểu thức gán có chứa biến với sự tồn tại chưa được xác định. Ví dụ ở dưới biến $a sẽ có giá trị là giá trị của biến $b hoặc default nếu biến $b chưa tồn tại:

$a = isset($b) ? $b : "default";

Sử dụng toán tử hợp nhất null, đoạn code trên sẽ trở lên ngắn gọn hơn như sau:

$a = $b ?? "default";
0