• Justo 24/h

5 tính năng mới trong php 7 phần 1 - Document

5 tính năng mới trong php 7 phần 1

By Hub Lib 02-11-2018 | 65 0 0

Sau khi PHP 5 ra mắt vào năm 2014 và đến cuối tháng 12 năm 2015 PHP 7 đã được ra mắt chính thức với hàng loạt tính năng mới. Và trong bài này sẽ giới thiệu 5 tính năng mới trên PHP 7 mà mình nghĩ là rất đáng giá.


1. Tốc độ của PHP 7 nhanh hơn PHP 5

      Tốc độ trong PHP 7 được cải thiện đáng kinh ngạc khi nó nhanh hơn PHP 5 tối thiểu là 2 lần. Nếu bạn tối ưu tốt thì nó có thể nhanh hơn nữa. Trong bảng benmark tốc độ dưới đây sẽ cho bạn thấy điều đó. Khi chạy test trên 2 CMS (Content Management System) nổi tiếng là Drupal và WordPress chưa được tối ưu gì nhưng tốc độ cũng đã nhanh hơn 2 lần, đặc biệt hiện có 25% các trang website đang chạy trên WordPress. Đấy là điều tuyệt vời cho tất cả mọi người.

2. Cho phép khai báo kiểu của biến

Tính năng này trong PHP 7 được gọi là Tyle Declarations, nó cho phép các lập trình viên có thể khai báo kiểu dữ liệu của biến thay vì để PHP tự động quyết định kiểu dữ liệu như trước kia. Trước PHP 7 nó vẫn bị chê là ngôn ngữ không chặt chẽ, weak typed language nhưng với tính năng này bạn có thể sử dụng để ràng buộc biến vào một kiểu dữ liệu cụ thể nào đó giúp cho code của mình dễ đọc hơn.
Ở PHP 5, bạn cũng có thể sử dụng tính năng type hint để chỉ định kiểu dữ liệu mong muốn của một tham số khi khai báo hàm, phương thức nhưng tất cả chỉ dừng lại ở khai báo. Khi bạn thực hiện gọi hàm này, PHP sẽ kiểm tra xem các tham số có đúng kiểu không, nếu không đúng, trình biên dịch sẽ thông báo lỗi và chương trình dừng. Type hint của PHP 5 không những bị giới hạn chỉ sử dụng trong khai báo hàm mà còn bị giới hạn 2 kiểu dữ liệu đó tên class hoặc mảng.

Scalar Type Hints

Ở phần này, mình có nói type hint trong PHP 5 chỉ có 2 kiểu đó là class và array nhưng trong PHP 7 được bổ sung thêm nhiều kiểu dữ liệu khác nữa là interger, float, string, bool. Với những tính năng này, PHP đã không còn mang tiếng là ngôn ngữ không chặt chẽ nữa rồi, tuy nhiên để sử dụng được scalar type hints bạn phải bật chế độ strict mode, mình sẽ nói ở dưới, với scalar type hints trong PHP 7, giúp code chúng ta viết được chặt chẽ hơn và dễ đọc hơn. Khi ở chế độ này, nếu tham số truyền vào là string, trong khi chúng ta khai báo là float nó sẽ thông báo lỗi:
Fatal error: Uncaught TypeError: Argumet 2 passed to Tên_hàm() must be of the type Kiểu_dl_khai_báo_trong_hàm, Kiểu_dl_truyền_vào given.
Giả sử hàm của bạn khai báo kiểu int mà bạn truyền vào là một số kiểu int, PHP sẽ thực hiện một thủ tục gọi là widening (Mở rộng) và nó sẽ tự động thêm ".0" vào cuối của con số mà bạn truyền vào để thành float hay double.

PHP 7 cho phép khai báo kiểu dữ liệu trả về

Nếu bạn đã từng lập trình các ngôn ngữ phổ biến như C, C++,Java, C#,..... thì chắc chắn sẽ quen thuộc cú pháp khai báo hàm đó là khai báo trả về của trước tên của hàm. Trong PHP 7 trở về trước thì nó không như thế mà bạn có thể trả về bất kỳ kết quả nào mà bạn muốn, do đó PHP 7 đã bổ sung tính năng này cho phép khai báo kiểu trả về của hàm, nếu kiểu trả về sai nó sẽ báo lỗi. Để có thể chỉ định kiểu trả về của hàm, bạn chỉ cần khai báo thêm dấu hai chấm và sau đó là kiểu dữ liệu trả về ngay sau tên hàm và trước dấu ngoặc nhọn. Nếu chúng ta chỉ định kiểu trả về là int nhưng bật chế độ strict mode thì coi như là chúng ta chưa chỉ định kiểu trả về, do đó nếu khai báo chế độ strict mode (declare (strict_types=1)).

Strict-int
Nếu trong hàm bạn chỉ định kiểu dữ liệu của biến là float nhưng lại là kiểu int và có bật chế độ strict mode thì PHP sẽ báo lỗi, do đó bạn cần phải ép kiểu.


Vậy là mình đã giới thiệu cho các bạn biết về một số điểm thay đổi trong PHP 7 mà mình tìm hiểu được. Còn phần 2 nữa các bạn hãy chờ đón nhé!

Bình luận

*