PHP Release Changes

Summary PHP new changes of each version


PHP 7.x

Compiler

  • The performance of PHP7 doubled compared to PHP5.6

Syntax

Khai báo kiểu dữ liệu cho biến và kiểu dữ liệu trả về.

Class ẩn danh (anonymous class)

Khai báo hằng số kiểu mảng với define.

  • Với php5.6 chỉ có thể khai báo hằng số giá tị mảng với const.

Nhóm câu lệnh import với use.

Arrow function

  • Cú pháp function ngắn gọn để khai báo

Dấu phân tách chữ số.

  • Dấu _ (underscore) để chia chữ số cho dễ nhìn.

Toán Tử

Toán tử null (??)

Toán tử spaceship. (<==>)

PHP 8.x

Trình biên dịch JIT

  • PHP 8 giới thiệu 2 công cụ biên dịch JIT mới. Cho thấy hiệu suất tăng 3 lần với synthetic benmarks và 1.5 tới 2 lần với long-run application benchmarks

Syntax

Đặt tên tham số.

  • Các đối số (argument) của một hàm (function, method) nay có thể được pass với tên của tham số đó.

  • Không quan tâm thứ tự trước sau.

  • Chỉ yêu cầu với các đối số bắt buộc, có thể bỏ qua các đối số tuỳ chọn

    https://wiki.php.net/rfc/named_params

Thuộc tính metadata (Attributes)

Hợp nhất các kiểu (Union types)

Vấn đề so sánh chuỗi và số.

  • Trước đây, với các so sánh không ràng buộc giữa chuỗi và số. PHP thường cố gắng cast chuỗi về số để so sánh và thường tạo ra các so sánh không đúng như: 0 == 'string' sẽ trả về true
  • Từ PHP 8, Khi chuỗi được cast thành string không thành công, trình biên dịch sẽ cast số thành chuỗi numeric để so sánh.

Toán tử Enums

Thuộc tính chỉ đọc (Readonly Properties)

Điếm mới trong khởi tạo giá trị.

Hỗ trợ hằng số final

Unpacking mảng hỗ trợ key kiểu chuỗi

Toán tử

Toán tử match

Toán tử Nullsafe

  • Thay vì điều kiện kiểm tra null, bây giờ bạn có thể sử dụng một chuỗi các cuộc gọi với toán tử nullsafe mới.

  • Khi đánh giá một phần tử trong chuỗi fails, quá trình thực thi của toàn bộ chuỗi sẽ bị hủy bỏ và toàn bộ chuỗi được gán là null.

    https://www.php.net/releases/8.0/en.php#nullsafe-operator

Exception - Error

Thống nhất lỗi Exception