Mặc dù PHP 8 là một phiên bản chưa được phát hành chính thức, tuy nhiên phiên bản này đã giới thiệu rất nhiều tính năng mới vô cùng hấp dẫn đến đông đảo người dùng. Vậy những tính năng mới trong PHP 8 bao gồm những gì? Có tính năng gì đặc biệt? Chúng ta hãy cùng nhau khám phá ngay bài viết dưới đây nhé!

PHP 8 là gì? Sơ lược về PHP 8

PHP 8 là phiên bản cập nhật chứa rất nhiều tính năng nổi bật của hệ thống ngôn ngữ PHP. Những tính năng đó bao gồm có: named arguments, named arguments, JIT, union types, union types, union types, union types, ngoài ra PHP 8 còn rất nhiều tính năng cải tiến khác. Một số tính năng tiêu biểu của PHP 8 được liệt kê sau đây:

PHP 8 là phiên bản của hệ thống ngôn ngữ PHP

PHP 8 là phiên bản của hệ thống ngôn ngữ PHP

Các tính năng mới trên PHP 8 

Sau đây sẽ một số tính năng mới trên PHP 8 được tổng hợp lại, bao gồm có:

Các tính năng mới trong PHP 8

Các tính năng mới trong PHP 8

Union Types - Tính năng mới trong PHP 8

Vì bản chất là kiểu động của PHP song Union Types khá hữu ích trong nhiều trường hợp. Union Types còn là tập hợp của hai hoặc nhiều kiểu, tuy nhiên chỉ có một kiểu được đưa vào sử dụng. 

Ví dụ: public function foo(Foo|Bar $input): int|float;

Vì không có giá trị nào được trả lại vậy nên Void không phải là một phần của Union Types.

Ngoài ra, nullable còn có thể được viết bằng |null hoặc ký hiệu “?”

Ví dụ:

public function foo(Foo|null $foo): void;

public function bar(?Bar $bar): void;

Triển khai đối tượng token_get_all() nhanh chóng - Tính năng mới trong PHP 8

Với tính năng triển khai đối tượng của token_get_all(), hàm  token_get_all() sẽ được trả về một mảng giá trị mới. Việc triển khai này sẽ giúp người dùng hoạt động với các đối tượng một cách dễ dàng, hạn chế được việc tiên tốn bộ nhớ hiệu quả.

Toán tử nullsafe - Tính năng mới trong PHP 8 

Toán tử nullsafe không được hoạt động trên các Method call chính vì vậy người dùng khi sử dụng tính năng này cần phải kiểm tra lại trung gian nhờ vào các trình trợ giúp tùy chọn đã được cung cấp bởi Framework.

Toán tử nullsafe

Toán tử nullsafe

Đặt tên cho đối số - Tính năng mới trong PHP 8

Đặt tên cho đối số là một tính năng mới của PHP 8, với tính năng này các đối số đã được đặt tên sẽ khiến cho người dùng có thể di chuyển các giá trị vào chung hàm nhờ việc định tên của giá trị, chính vì vậy người dùng có thể bỏ qua các tham số tùy chọn và không cần phải xem xét số thứ tự của chúng một cách dễ dàng.

Tính năng mới đặt tên cho đối số trong PHP 8

Tính năng mới đặt tên cho đối số trong PHP 8

Match Expression - Tính năng mới trong PHP 8

  • Match Expression là một biểu thức đi đầu trước switch, nó có các tính năng nổi bật sau:
  • Match là một biểu thức mà kết quả của nó có thể trả về giá trị hoặc sẽ được lưu trữ trong một biến
  • Các nhánh trong PHP 8 có thể hỗ trợ các biểu thức một dòng mà không yêu cầu tới câu lệnh break.
  • Match có sự so sánh nghiêm ngặt nhưng và không sử dụng tới các hình thức ép buộc. 

Ví dụ:

$result = match($input) {

    0 => "hello",

    '1', '2', '3' => "world",

};

Constructor - Tính năng mới trong PHP 8

Với tính năng này, RCF sẽ bổ sung các cú pháp đặc biệt để tạo nên các giá trị các đối tượng hoặc là các đối tượng truyền dữ liệu. Đối với tính năng này người dùng sẽ không cần chỉ định các thuộc tính của lớp và hàm tạo ra chúng mà có thể kết hợp chúng thành một.

Ví dụ:

class Money

{

    public function __construct(

        public Currency $currency,

        public int $amount,

    ) {}

Kiểu trả về static mới - Tính năng mới trong PHP 8

Với tính năng này người dùng có thể trả về Self tuy nhiên static không phải là một kiểu trả về đúng đến PHP 8. Với bản chất là Dynamic Type của PHP, đây sẽ một tính năng được sử dụng cho hầu hết các lập trình viên.

Tính năng mới đặt tên cho đối số trong PHP 8

Kiểu trả về Static mới trong PHP 8

 

Ví dụ:

class Foo

{

    public function test(): static

    {

        return new static();

    }

Weakmap - Tính năng mới trong PHP 8

Weakmap là một tính năng mới khá là nổi bật của PHP 8, được xây dựng dựa trên bản triển khai weakref RFC. Với tính năng này người dùng có thể giữ các tham chiếu đến các đối tượng và ngăn các đối tượng đó bị thu thập rác. 

Throw expression - Tính năng mới trong PHP 8

Với tính năng Throw expression, RFC thay đổi Throw thành một biểu thức một cách dễ dàng. Nhờ đó mà nó có thể di chuyển ngoại lệ ở nhiều vị trí khác nhau:

Cho phép ::class ngay trên objects - Tính năng mới trong PHP 8

Mặc dù đây là một tính năng nhỏ trong PHP 8 nhưng khá là quan trọng. Với tính năng này người dùng có thể sử dụng : : Class ngay trên các đối tượng mà không cần phải sử dụng get_class() như trước.

Ví dụ:

$foo = new Foo();

var_dump($foo::class);

Hàm str_contains() mới

Hàm str_contains() mới - Tính năng mới trong PHP 8

Với tính năng Hàm str_contains() mới trong PHP 8, người dùng có thể kiểm tra dữ liệu một chuỗi có chứa chuỗi khác hay không dễ dàng mà không cần phải dựa vào strpos().

Nhìn chung tính năng mới trong PHP 8 tập hợp rất nhiều tính năng mới nổi bật và hữu ích. Với sự thay đổi và cải tiến không ngừng của PHP, chắc chắn trong tương lai PHP sẽ trở nên lớn mạnh và tốt hơn, cuối cùng xin cám ơn các bạn độc giả thân mến vì đã theo dõi đến cuối bài viết!

4 out of 1 Votes