Cái gì đang được mong đợi trong PHP 7.4 sắp tới?Kiểu cho thuộc tính!

Cái gì đang được mong đợi trong PHP 7.4 sắp tới?Kiểu cho thuộc tính!

Laravel News, Typed Properties 2.0 RFC tại thời điểm tháng 10/2018 đã được con dân sử dụng PHP bầu với tỉ lệ 70 phiếu thuận và 1 phiếu chống. Đây chắc chắn sẽ là 1 thay đổi bởi vì đây là 1 thay đổi lớn về ngôn ngữ và cần ít nhất 2/3 đa số đồng ý theo như luật định.

Có thể bạn quan tâm:


10 Thư viện PHP mà bất kỳ ai cũng không thể bỏ qua
Lập trình hướng đối tượng với PHP và những điều cần biết (Phần 2)

Và cái thay đổi đó sẽ cho cái kết quả ra như thế này:


1234567891011
class User {
public int $id;
public string $name;
public function __construct(int $id, string $name) {
$this->id = $id;
$this->name = $name;
}}

Ơ mà trông cũng thân quen mà? Có cái thay đổi gì đâu? Thực ra thì trước khi thành như trên(PHP 7.4 ra mắt) thì đây là hiện tại


123456789101112131415161718192021222324252627
class User {
/** @var int $id */
private $id;
/** @var string $name */
private $name;
public function __construct(int $id, string $name) {
$this->id = $id;
$this->name = $name;
}
public function getId(): int {
return $this->id;
}
public function setId(int $id): void {
$this->id = $id;
}
public function getName(): string {
return $this->name;
}
public function setName(string $name): void {
$this->name = $name;
}}

So sánh 2 code chúng ta có thể thấy biến $id ở code trên đã được định nghĩa sẵn kiểu int, chỉ cần viết ngắn gọn. Còn code dưới thì $id chỉ là biến bất kì, và các code sau ta phải định nghĩa kiểu int cho nó mỗi lần gọi code.


Và ĐẶC BIỆT, viết kiểu trên vẫn sẽ đảm bảo toàn vẹn cho kiểu dữ liệu. Chả trách tại sao tỉ lệ đồng ý là 70/1. Đến mình còn muốn dơ hết các chân tay lên đồng ý cơ mà (dance4)


Chúng ta sẽ cùng đến với mô tả từ RFC:


“Với các kiểu vô hướng và trả về, PHP đã có 1 sức mạnh đáng kể cho hệ thống kiểu dữ liệu sẵn có của PHP. Tuy nhiên, việc không thể khai báo kiểu cho các thuộc tính lớp đã và đang buộc các nhà phát triển dùng các phương thức get và set để thực thi việc đặt kiểu. Điều này đã và đang khiến quá nhiều thứ không cần thiết, làm việc sử dụng thiếu gọn nhẹ và hiệu suất cũng không cao. RFC này sẽ giải quyết vấn đề này bằng cách giới thiệu việc hỗ trợ việc khai báo kiểu thuộc tính cho các first-class”


Và đây là hỗ trợ về các kiểu ở trong bản PHP 7.4 được đề nghị sắp tới




Ồ và ở đây chúng ta không bàn tới kiểu callable và kiểu void.


Lý do được giải thích như sau:


“Loại void không được hỗ trợ, bởi vì nó không hữu ích và có ngữ nghĩa không rõ ràng. Theo một cách giải thích cứng, các thuộc tính của kiểu void có thể không được đọc và cũng không được ghi vào, vì không có cách nào để xây dựng một giá trị của kiểu void trong PHP. Theo một giải thích linh hoạt hơn (phù hợp với thực tế là chúng ta cho phép sử dụng các giá trị trả về của các hàm void) một thuộc tính của loại void chỉ có thể giữ giá trị null. Theo như 2 cách giải thích trên, chúng ta không cần các thuộc tính void. Điều này phù hợp với chú thích loại tham số. ”


Còn với kiểu callable thì cú pháp sẽ hơi kì dị 1 tẹo


BẠN SẼ QUAN TÂM

Apple phát hành bản Public Beta đầu tiên của iOS 13 và iPadOS sớm hơn dự kiến

Tin tức ICT 25-06-2019, 09:10

iOS 13 bao gồm nhiều bản cập nhật và cải tiến, bổ sung thêm chế độ tối, cũng như ứng dụng Nhắc nhở mới, cải thiện hiệu.

Tìm hiểu về Public Cloud, Private Cloud và Hybrid Cloud

Thủ thuật 20-06-2017, 15:25

Có rất nhiều cách thức khác nhau để triển khai cũng như khai thác tài nguyên điện toán đám mây..

TRÒ ĐÙA VỆ SĨ ĐƯỜNG PHỐ CỰC HÀI - BODYGUARD IN THE PUBLIC PRANK

Media / Video Hài hước 1-06-2018, 03:16

♥Dành ít giây click quảng cáo để kiếm mì tôm ăn nha anh em.n◘Cảm ơn tất cả các bạn đã xem clip của mình. Hãy chia sẻ.

Apple phát hành bản public beta thứ hai của iOS 11.2, macOS 10.13.2 High Sierra và tvOS 11.2

Tin tức ICT 8-11-2017, 10:18

Apple vừa phát hành bản public beta thứ hai của iOS 11.2, macOS 10.13.2 High Sierra và tvOS 11.2 cho người dùng tham.

Legends Never Die – LilyPichu, Xell, and Tiffany Chang(String Quartet + Piano Cover )

Media / Video Game 25-10-2017, 23:44

Một phiên bản nhẹ nhàng của Legends Never Die..

Apple tung iOS 11 Public Beta cho người dùng phổ thông

Công nghệ / Điện thoại 21-09-2017, 17:26

iOS 11 Public Beta vẫn còn một vài lỗi nhỏ của hệ thống cũng như giao diện, người dùng nên cân nhắc trước khi cài đặt..

Cách tải về và cài đặt iOS 11 Public Beta để ổn định hơn

Tin tức ICT 27-06-2017, 12:32

iOS 11 Public Beta là phiên bản dùng thử dành cho người dùng phổ thông nên hạn chế tối đa các lỗi vặt, lỗi hệ thống.

Apple chính thức giới thiệu iOS 10 public beta 2 cho người dùng

Công nghệ / Điện thoại 21-07-2016, 05:16

Sau bản cập nhật dành cho lập trình viên, Apple chính thức phát hành iOS 10 public beta 2 cho người dùng dùng thử.

ĐỪNG BỎ LỠ