Toán tử kết hợp chỉ khả dụng trong PHP 7

QCon London [27-29 tháng 3 năm 2023]. Áp dụng các xu hướng mới nổi phù hợp để giải quyết các thách thức kỹ thuật của bạn

PHP 7 — Các cải tiến đối với mảng, toán tử, hằng số và xử lý ngoại lệ

Thích In Dấu trang

Ngày 10 tháng 8 năm 2020 Đọc 22 phút

qua

  • Deepak Vohra

xét bởi

  • Sergio De Simone

Viết cho InfoQ

Tham gia cộng đồng chuyên gia. Tăng khả năng hiển thị của bạn.
Phát triển sự nghiệp của bạn.
Tìm hiểu thêm

Chìa khóa rút ra

  • PHP7. 0 thêm toán tử kết hợp null [??]  để trả về  toán hạng đầu tiên nếu nó tồn tại và giá trị của nó không phải là NULL và trả về toán hạng thứ hai nếu không. PHP7. 4 thêm hỗ trợ cho các bài tập hợp nhất null.  
  • PHP 7.0 adds a new comparison operator [] to compare expressions.
  • PHP7. 0 thêm hỗ trợ cho cú pháp thoát điểm mã Unicode, để chuyển đổi dạng thập lục phân sang dạng mã hóa UTF-8 tương ứng.  
  • Câu lệnh sử dụng có thể nhóm các lớp, hàm và hằng ngay cả khi được nhập từ cùng một không gian tên
  • PHP7. 1, thêm một cú pháp mảng dạng ngắn để giải nén hoặc phá hủy một mảng.  
  • PHP  7. 1  thêm hỗ trợ cho khả năng hiển thị hằng số của lớp, sử dụng những hằng số nào có thể được khai báo là công khai, được bảo vệ và riêng tư
  • PHP 7 hỗ trợ chỉ định nhiều ngoại lệ trong cùng một khối bắt của câu lệnh try/catch
  • Với PHP7. 0. 0, từ khóa có thể được sử dụng làm định danh
  • PHP7. 3  giới thiệu cú pháp Heredoc và Nowdoc linh hoạt để dễ đọc hơn
  • PHP 7. 3 bổ sung hỗ trợ cho các phép gán tham chiếu trong phá hủy mảng và danh sách[].
     

PHP7. x mang đến một số cải tiến và tính năng mới liên quan đến tất cả các khía cạnh của ngôn ngữ, bao gồm hỗ trợ tốt hơn cho lập trình hướng đối tượng, mở rộng cho các lớp và giao diện, cải tiến hệ thống loại, xử lý lỗi, v.v. Trong loạt bài viết này, chúng tôi thảo luận về các tính năng mới trên các phiên bản PHP 7 khác nhau. phiên bản x

 

Trong bài viết cuối cùng của loạt bài về các tính năng mới trong PHP 7. x, chúng ta sẽ thảo luận về các cải tiến đối với mảng, toán tử, hằng số và xử lý ngoại lệ

Toán tử hợp nhất Null

Có thể sử dụng hàm 

Hello JohnSmith
Hello JohnSmith
Hello JohnSmith
9 để tìm hiểu xem một biến có được đặt hay không 

0. Thông thường, bạn sẽ sử dụng toán tử bậc ba trong PHP  with

1 như minh họa trong ví dụ sau. Ở đây,

1 trả về true nếu tên tham số yêu cầu 

3 được đặt, trong trường hợp đó, giá trị của biến được gán cho biến 

4, nếu không thì 

4 được đặt thành giá trị chuỗi không đổi

$name = isset[$_GET['name']] ? $_GET['name'] : 'Deepak';
echo "Hello " . htmlspecialchars[$name]."
";

Toán tử hợp nhất null [


6], đã được thêm vào PHP 7. 0, có thể được sử dụng để hợp lý hóa loại hoạt động này. Thật vậy, nó sẽ trả về toán hạng đầu tiên nếu nó tồn tại và giá trị của nó không phải là

0 và trả về toán hạng thứ hai nếu không. Ví dụ trước có thể được viết lại như sau bằng cách sử dụng ??


0

Các toán tử kết hợp null có thể được xâu chuỗi để trả về giá trị được xác định đầu tiên


1

Bây giờ, hãy tạo tập lệnh ternary. php bao gồm tất cả các ví dụ sau


2

Nếu bạn chạy tập lệnh không có tham số yêu cầu, tất cả các ví dụ sẽ xuất giá trị cuối cùng được chỉ định


3

Thay vào đó, nếu bạn chạy tập lệnh cung cấp tham số yêu cầu, chẳng hạn như


8, thì tất cả các ví dụ sẽ xuất ra tham số yêu cầu nhận được

9

Hello JohnSmith
Hello JohnSmith
Hello JohnSmith

Toán tử so sánh mới

A new comparison operator [] has been added to PHP 7.0  which returns -1 if the first expression is less than the second, 0 if the two expressions are the same, and 1 if the first expression is greater than the second.  PHP’s type comparison rules are used for performing the comparison. To demonstrate this, create a script compare.php to compare integer, floating-point and string values:


Nếu chạy tập lệnh, bạn sẽ  nhận được kết quả so sánh sau


8

Chuyển đổi điểm mã Unicode từ Dạng thập lục phân sang UTF-8

PHP7. 0 đã thêm hỗ trợ cho cú pháp thoát điểm mã Unicode, có dạng thập lục phân và trả về dạng được mã hóa UTF-8 tương ứng. Ví dụ:


80 được biểu thị bằng 

81 bằng Unicode, trong đó số 0 đứng đầu có thể được bỏ qua. Để thử nghiệm cú pháp thoát điểm mã Unicode, hãy tạo tập lệnh unicode. php. Sao chép danh sách sau vào tập lệnh


1

Nếu bạn chạy tập lệnh, một chuỗi UTF-8 ĤĒĻĻŌ sẽ được in ra

Cho phép nhóm trong câu lệnh  ‘use’  cho Không gian tên bí danh

Trước PHP 7. 0, mỗi lớp, hàm và hằng số được nhập từ cùng một không gian tên phải được chỉ định bằng một câu lệnh 


82 riêng biệt. Với PHP7. 0, các lớp, hàm và hằng số có thể được nhóm trong cùng một câu lệnh 

82 ngay cả khi được nhập từ cùng một không gian tên. Ngoài ra, kể từ PHP 7, dấu phẩy ở cuối được cho phép khi nhóm các mục nhập

Ví dụ: tạo danh mục tập lệnh. php và khai báo một số lớp, hàm và hằng số thuộc cùng một không gian tên như được liệt kê tại đây


4

Như bạn có thể thấy, trong khi các hằng số được khai báo bằng cách sử dụng 


84 phải chỉ định tên đủ điều kiện của chúng, điều tương tự không áp dụng cho các hằng số được khai báo bằng cách sử dụng 

85. Tạo một không gian tên nhóm tập lệnh khác. php và nhập các lớp, hàm và hằng số được xác định trong danh mục. php. Tập lệnh bao gồm một câu lệnh 

86 cho danh mục. php. Các lớp, hàm và hằng số được nhập theo nhóm khi sử dụng


00

Chạy không gian tên nhóm. php để truy cập vào các lớp, hàm và hằng số được nhập theo nhóm và xuất giá trị của chúng


01

Cú pháp mảng ngắn để hủy cấu trúc mảng để gán

Chúng tôi đã đề cập trước đó rằng hỗ trợ giải nén chuỗi có


87 đã bị xóa khỏi PHP 7. Dù sao đi nữa,

88 tiếp tục hỗ trợ giải nén hoặc phá hủy một mảng để gán cho các biến. Trong PHP7. 1, một cú pháp mảng dạng ngắn đã được thêm vào để giải nén hoặc hủy cấu trúc một mảng. Để minh họa việc sử dụng cú pháp mảng dạng ngắn, hãy tạo tập lệnh array_syntax. php và tạo mảng hai chiều cho các tạp chí khác nhau với id được chỉ định cho từng tạp chí


02

Để sử dụng 


87 để hủy cấu trúc hoặc giải nén mảng 

10 thành 

11 và 

12, bạn có thể sử dụng cú pháp sau


03

Ngoài ra, bạn có thể sử dụng cú pháp phá hủy mảng mới như sau


04

Hàm 


87 có thể được sử dụng trong _______214 cấu trúc như trong ví dụ sau


05


15 tương đương sử dụng cú pháp mảng 

16 được trình bày ở đây


06

Cú pháp mảng đầy đủ. tập lệnh php được liệt kê bên dưới


07

Nếu chạy tập lệnh, bạn sẽ thấy cú pháp mảng dạng ngắn mới thực hiện giải nén mảng giống như vậy và xuất ra các giá trị giống như 


87, như minh họa bên dưới


08

Liên quan đến vấn đề này, hàm 


18 trả về giá trị cho một cột duy nhất trong một mảng đầu vào. Cột được xác định bởi 

19 theo cú pháp sau


09

PHP7. 0. 0 đã thêm hỗ trợ cho tham số đầu vào là một mảng các đối tượng. Để chứng minh điều này, hãy tạo tập lệnh array_column. php và khai báo một lớp 


40 với hai trường 

41 và 

42. Tạo hai phiên bản của 

40 và đặt giá trị cho cả hai. Sau đó, tạo một mảng đối tượng chứa hai 

40 đối tượng


10

Cuối cùng, lấy giá trị của từng trường trong số hai trường từ mảng đối tượng bằng cách sử dụng hàm 


45


11

Mảng_cột. tập lệnh php được liệt kê ở đây


12

Nếu bạn chạy tập lệnh, tập lệnh sẽ xuất các giá trị trường từ hai đối tượng 


40


13

Hỗ trợ cho khả năng hiển thị liên tục của lớp

PHP  7. 1 đã thêm hỗ trợ cho khả năng hiển thị hằng số của lớp, ngụ ý rằng các hằng số có thể được khai báo là công khai, được bảo vệ và riêng tư. Các hằng số công khai có thể truy cập được ở bất cứ đâu mà lớp mà chúng được khai báo có thể truy cập được. Các hằng số được bảo vệ có thể truy cập được trong cùng một lớp và các lớp con. Các hằng số riêng tư chỉ có thể truy cập được trong cùng một lớp. Để chứng minh việc sử dụng khả năng hiển thị hằng số của lớp, hãy tạo một hằng số tập lệnh. php và khai báo một lớp có tên là 


47. Trong lớp khai báo bốn hằng số. một không có công cụ sửa đổi quyền truy cập, một công cụ thứ hai có 

48 công cụ sửa đổi quyền truy cập, một công cụ thứ ba có 

49 công cụ sửa đổi quyền truy cập và một hằng số thứ tư có công cụ sửa đổi quyền truy cập riêng tư


14

Khả năng hiển thị mặc định của hằng số lớp là công khai. Bây giờ hãy xác định ba hàm.


000 với công cụ sửa đổi quyền truy cập công khai, 

001 với công cụ sửa đổi quyền truy cập riêng tư và 

002  với công cụ sửa đổi quyền truy cập được bảo vệ. Mỗi hàm xuất giá trị của từng trong số bốn hằng số được xác định trước đó


15

Từ fn_a[] gọi fn_b[]


003

Từ fn_b[] gọi hàm fn_c[]


004

Để chỉ ra rằng tất cả các hằng số được khai báo trong lớp đều có thể truy cập được từ cùng một lớp bất kể khả năng hiển thị hoặc công cụ sửa đổi quyền truy cập được sử dụng, hãy tạo một phiên bản của hằng số lớp và gọi hàm 


000, lần lượt gọi hàm 

001, hàm này lại gọi 

002


16

Để chỉ ra rằng các hằng số riêng tư có thể truy cập được trong cùng một lớp mà chúng được khai báo và các hằng số được bảo vệ chỉ có thể truy cập được từ một lớp con và trong cùng một lớp như đã khai báo, hãy khai báo một lớp


008 và xuất giá trị của từng hằng số trong một hàm

000


17

Cuối cùng, để chỉ ra rằng trong khi các hằng số công khai và được bảo vệ có thể truy cập được từ một lớp con, thì các hằng số riêng tư thì không, hãy khai báo một lớp con của hằng số lớp và xuất giá trị của từng hằng số trong một hàm 


010


18

Các hằng số. tập lệnh php được liệt kê


19

Nếu bạn cố chạy tập lệnh, câu lệnh echo hiển thị bên dưới  sẽ tạo ra lỗi sau.


011


20

Là hằng số được bảo vệ, 


012 không thể truy cập được từ bất kỳ lớp nào không bắt nguồn từ danh mục. Bây giờ, hãy bình luận câu lệnh đó và chạy lại tập lệnh. Tập lệnh tạo ra lỗi

013 ở câu lệnh sau


21

Là hằng số riêng tư, 


014 không thể truy cập nó từ bất kỳ lớp nào khác. Nhận xét câu lệnh đó và chạy lại tập lệnh. Tập lệnh tạo ra một lỗi khác.

015tại tuyên bố sau


22

Hằng số 


014 là một hằng số riêng tư, bạn không thể truy cập nó từ một lớp con. Nhận xét câu lệnh đó và chạy lại tập lệnh. Bây giờ, bạn sẽ nhận được đầu ra sau


23

Nhiều ngoại lệ trên mỗi khối bắt

Nhiều ngoại lệ hiện có thể được chỉ định trong cùng một khối 


017 của câu lệnh 

018, sử dụng ký tự ống dẫn '

019' làm dấu phân cách. Tính năng này hữu ích nếu nhiều trường hợp ngoại lệ cần được xử lý theo cùng một cách. Để minh họa việc sử dụng khối bắt đa ngoại lệ, hãy tạo tập lệnh đa bắt ngoại lệ. php và sao chép danh sách sau vào đó. Tập lệnh khai báo hai lớp ngoại lệ tùy chỉnh và một câu lệnh try/catch trong [

020] hàm test[] của một lớp khác khai báo nhiều ngoại lệ trong khối catch của nó.   


24

Tập lệnh đa bắt ngoại lệ. php được liệt kê bên dưới


25

Nếu bạn chạy tập lệnh, thì ngoại lệ được đưa vào khối thử sẽ bị bắt trong khối bắt như minh họa bên dưới


021

Cú pháp tải tiện ích mở rộng được cải thiện

Cú pháp tải tiện ích có sẵn trong 


022 đã được cải thiện. Tiện ích mở rộng dùng chung không yêu cầu hậu tố 

023 [trên Windows] và 

024 [trên Unix] nữa. Ví dụ: cơ sở dữ liệu MySQL và phần mở rộng cơ sở dữ liệu Oracle có thể được chỉ định như sau


26

Từ khoá như định danh

Với PHP7. 0. 0, các từ khóa có thể được sử dụng làm tên thuộc tính, hằng số và phương thức cho các lớp, giao diện và đặc điểm. Để minh họa điều này, hãy tạo tập lệnh restriction. php và sao chép đoạn mã sau vào đó. Tập lệnh khai báo tên biến bằng từ khóa dành riêng [______1025]. Nó cũng khai báo một hằng số có tên là 


026[một từ khóa] và một hàm có tên là 

027[một từ khóa]


27

Nếu bạn chạy tập lệnh, không có thông báo lỗi nào xuất ra. Một ngoại lệ đối với khả năng sử dụng từ khóa làm định danh là một hằng số không thể được đặt tên là lớp. Để chứng minh điều này, hãy thêm dòng sau vào tập lệnh trước


028

Nếu bạn chạy tập lệnh, thông báo lỗi sau sẽ được tạo


029

Cú pháp Heredoc và Nowdoc linh hoạt

Hãy bắt đầu với việc xem lại 


030 và 

031 cú pháp.

030 tương tự như chuỗi trích dẫn kép, với dấu bắt đầu và kết thúc thay thế dấu ngoặc kép. Với heredoc, sau toán tử start 

033, bạn có thể chỉ định một mã định danh tùy ý theo sau là một dòng mới. Một chuỗi theo sau và cùng một số nhận dạng đóng dấu ngoặc kép.

031 tương tự như 

030 ngoại trừ điểm đánh dấu bắt đầu được đặt trong một dấu nháy đơn '' và không có phân tích cú pháp nào được thực hiện bên trong Nowdoc

PHP7. 3 đã giới thiệu cú pháp 


030 và 

031 linh hoạt để dễ đọc hơn với các cải tiến sau

  1. Dấu chấm phẩy không cần theo sau dấu chấm phẩy [‘;’]
  2. Dấu đóng không cần theo sau bởi một dòng mới
  3. Dấu đóng có thể được thụt lề bằng các tab hoặc dấu cách. Không thể trộn lẫn các tab và khoảng trắng. Văn bản chuỗi trong tài liệu có thể được thụt lề ở mức bằng hoặc lớn hơn mức thụt lề của dấu đóng
  4. Mã định danh kết thúc được xác định bởi một điểm đánh dấu độc lập, liên tục giống như điểm đánh dấu bắt đầu

Tiếp theo, chúng ta sẽ chứng minh cú pháp mới với một vài ví dụ. Nhưng trước tiên hãy nhớ lại cú pháp cũ.  


038


039


040

Heredoc cũng có thể được gán cho một biến


28

Sau đây là một ví dụ về heredoc sử dụng cú pháp mới


29

Thay vào đó, tập lệnh sau không phải là cú pháp heredoc hợp lệ và tạo ra lỗi sau.


041


30

Ví dụ về cú pháp 


031 trước như sau


043


044


040

Một ví dụ về cú pháp nowdoc mới như sau


31

Bởi vì không có phân tích cú pháp nào được thực hiện bên trong nowdoc, ví dụ sau chứa mã dự phòng trong chuỗi nowdoc


32

Bởi vì không có phân tích cú pháp nào được thực hiện, tập lệnh trước tạo ra đầu ra sau


046

Như đã đề cập, các mức thụt đầu dòng của phần thân heredoc và nowdoc ít nhất phải bằng mức của dấu đóng. Để chứng minh điều này, hãy chạy tập lệnh sau


33

Trong trường hợp này, lỗi sau được tạo ra


047

Hỗ trợ các bài tập tham chiếu trong cấu trúc mảng

PHP7. 3 đã thêm hỗ trợ cho các phép gán tham chiếu trong mảng và _______187 phá hủy. Trước tiên, hãy xem lại các phép gán trong phá hủy mảng/danh sách là gì. Trong tập lệnh sau, một mảng bị hủy cấu trúc và các giá trị phần tử của nó được gán cho một danh sách


34

Câu lệnh 


049 tạo ra kết quả sau


050

Bây giờ, hãy xem xét một ví dụ về cú pháp mới


051

Trong trường hợp này, các phần tử danh sách $a và $c được chỉ định theo tham chiếu. Ví dụ: tạo tập lệnh sau trong đó phần tử 


052 được chỉ định theo tham chiếu đến biến $b. Điều này có nghĩa là nếu $b   được chỉ định một giá trị mới, thì giá trị mới đó cũng được chỉ định cho 

052


35

Đầu ra từ tập lệnh như sau


36

Nếu chạy cùng một tập lệnh mà không gán theo tham chiếu, đầu ra sẽ khác


054

Đầu ra với nhiệm vụ trước như sau


37

Cuối cùng, hãy xem xét một ví dụ về gán tham chiếu trong phá hủy mảng. Trong tập lệnh sau, một phần tử mảng được gán một giá trị bằng cách tham chiếu đến một biến $b. Nếu giá trị của $b bị thay đổi thì giá trị của phần tử mảng cũng vậy


38

Chạy tập lệnh và bạn sẽ nhận được đầu ra sau


39

Instanceof Chấp nhận chữ

Hãy bắt đầu với việc xem xét toán tử 


055 . Trong tập lệnh sau, 

055 được dùng để tìm hiểu xem một đối tượng có phải là một thể hiện của lớp A hay không

Hello JohnSmith
Hello JohnSmith
Hello JohnSmith
0

Nếu bạn chạy tập lệnh, đầu ra 1 sẽ được tạo

PHP7. 3 đã thêm hỗ trợ để sử dụng chữ làm toán hạng đầu tiên. Trong tập lệnh sau, toán hạng đầu tiên của 


055 là một chuỗi ký tự

Hello JohnSmith
Hello JohnSmith
Hello JohnSmith
1

Nếu bạn chạy tập lệnh, thì 


058 được xuất ra. Nếu toán hạng đầu tiên là một chữ cái, thì đầu ra instanceof luôn là 

058

Chuyển nhượng kết hợp Null

Chúng ta đã thảo luận trước đó về toán tử hợp nhất null 


6 được giới thiệu trong PHP 7. 0. PHP7. 4 đưa toán tử hợp nhất null 

6 đi xa hơn bằng cách thêm hỗ trợ cho phép gán hợp nhất null. Ví dụ, hãy xem xét trường hợp sau. bạn sử dụng

062để xác định xem khóa mảng có được đặt hay không và nếu không, bạn đặt giá trị cho khóa đó

Hello JohnSmith
Hello JohnSmith
Hello JohnSmith
2

Tập lệnh sau minh họa việc sử dụng phép gán hợp nhất null cho cùng một cài đặt có điều kiện của khóa mảng

Hello JohnSmith
Hello JohnSmith
Hello JohnSmith
3

Dấu tách chữ số

Các chữ số có nhiều chữ số có thể không đọc được do độ dài của chúng, điều này có thể gây khó khăn cho việc gỡ lỗi. PHP7. 4 giới thiệu dấu gạch dưới dưới dạng dấu tách chữ số để cải thiện khả năng đọc mã. Tập lệnh sau sử dụng dấu phân cách _ chữ số trong các biến thuộc các loại khác nhau

Hello JohnSmith
Hello JohnSmith
Hello JohnSmith
4

Yêu cầu duy nhất để sử dụng dấu gạch dưới làm dấu tách chữ số là dấu gạch dưới phải xuất hiện giữa hai chữ số. Cụ thể, nó không được ở cuối một chữ số, cũng không được xuất hiện bên cạnh một dấu gạch dưới khác hoặc bên cạnh dấu thập phân. Tên biến vẫn có thể bắt đầu bằng dấu gạch dưới. Sau đây là tất cả các ví dụ về _ được sử dụng  làm dấu tách chữ số theo cách không chính xác.  

Hello JohnSmith
Hello JohnSmith
Hello JohnSmith
5

Các dấu gạch dưới trong chữ số được loại bỏ trong lexing

Toán tử trải rộng để giải nén bên trong một Mảng

Toán tử dải được biểu thị bằng ba dấu chấm liên tiếp … đã được hỗ trợ để giải nén đối số trong chữ ký hàm. PHP7. 4 thêm hỗ trợ cho toán tử trải rộng để giải nén các phần tử của một mảng. Các đặc điểm chính của hỗ trợ toán tử trải rộng trong mảng như sau

  • Mảng và đối tượng triển khai
    
    
    063 có thể được sử dụng với toán tử trải rộng
  • Toán tử trải rộng có thể được sử dụng ở bất cứ đâu trong một mảng, trước hoặc sau các phần tử của nó và thậm chí liên tiếp.  
  • Nó có thể được sử dụng với cả cú pháp mảng [mảng[]] và cú pháp ngắn [[]].  
  • Một mảng được trả về bởi một hàm có thể được giải nén bằng toán tử điểm
  • Một mảng không thể giải nén bằng tham chiếu. Nếu các phần tử của một mảng được giải nén được lưu trữ theo tham chiếu, chúng sẽ tiếp tục được lưu trữ theo tham chiếu sau khi giải nén
  • Phím chuỗi không được hỗ trợ

Tập lệnh sau minh họa việc sử dụng toán tử trải rộng. phần tử mảng.


064 sử dụng toán tử trải phổ. Phần tử mảng ,.

065 giải nén một mảng do một hàm trả về.  

Hello JohnSmith
Hello JohnSmith
Hello JohnSmith
6

Mỗi kết quả đầu ra của câu lệnh var_dump


066

Để xác minh rằng các khóa chuỗi không thể được sử dụng với toán tử trải rộng, hãy chạy tập lệnh sau

Hello JohnSmith
Hello JohnSmith
Hello JohnSmith
7

 

Thông báo lỗi sau được hiển thị


067

Dấu ngoặc nhọn không dùng nữa Cú pháp để truy cập các phần tử mảng

PHP7. 4 phản đối việc sử dụng dấu ngoặc nhọn để truy cập các phần tử mảng và độ lệch chuỗi. Cú pháp dấu ngoặc nhọn dù sao cũng chỉ có chức năng hạn chế; . Vẫn có thể sử dụng tập lệnh sau và tạo chuỗi đầu ra dự kiến [1] "a".  

Hello JohnSmith
Hello JohnSmith
Hello JohnSmith
8

Tuy nhiên, nó cũng hiển thị một thông báo cảnh báo


068

Tóm lược

Trong một loạt năm bài viết, chúng tôi đã khám phá các tính năng mới nổi bật trong PHP 7. x được nhóm theo danh mục tính năng. Trong bài viết đầu tiên PHP 7 — Bắt đầu và Cải tiến OOP chúng tôi đã thiết lập môi trường để chạy PHP 7. x và giới thiệu các cải tiến liên quan đến lập trình hướng đối tượng. Trong bài viết thứ hai  PHP 7 — Các cải tiến về Lớp và Giao diện chúng tôi đã giới thiệu các cải tiến đối với các lớp và giao diện. Trong bài viết thứ ba PHP 7 — Tính năng mới cho các loại chúng tôi đã giới thiệu các cải tiến trong hệ thống loại của PHP. Trong bài viết thứ tư PHP 7 – Cải tiến chức năng chúng tôi đã giới thiệu các cải tiến liên quan đến chức năng. Trong bài viết cuối cùng này của loạt bài, chúng tôi kết thúc với các cải tiến không được đề cập trong các bài viết trước đó và chúng bao gồm các cải tiến đối với mảng, toán tử, hằng số và xử lý ngoại lệ

PHP8. 0 dự kiến ​​sẽ được cung cấp vào đầu tháng 12 năm 2020 với một bộ tính năng mới, nhưng cho đến lúc đó hãy kiểm tra lại PHP 7 của bạn. x.  

Giới thiệu về tác giả

Deepak Vohra là Lập trình viên Java được Sun chứng nhận và Nhà phát triển thành phần web được Sun chứng nhận. Deepak đã xuất bản các bài viết kỹ thuật liên quan đến Java và Java EE trên WebLogic Developer's Journal, XML Journal, ONJava, java. net, IBM developerWorks, Java Developer's Journal, Oracle Magazine, và devx. Deepak đã xuất bản năm cuốn sách về Docker và là một Docker Mentor. Deepak cũng đã xuất bản một số bài báo về PHP và một cuốn sách Ruby on Rails dành cho các nhà phát triển PHP và Java

 

PHP7. x mang đến một số cải tiến và tính năng mới liên quan đến tất cả các khía cạnh của ngôn ngữ, bao gồm hỗ trợ tốt hơn cho lập trình hướng đối tượng, mở rộng cho các lớp và giao diện, cải tiến hệ thống loại, xử lý lỗi, v.v. Trong loạt bài viết này, chúng tôi thảo luận về các tính năng mới trên các phiên bản PHP 7 khác nhau. phiên bản x

 

Lấy cảm hứng từ nội dung này?

Trở thành biên tập viên cho InfoQ là một trong những quyết định sáng suốt nhất trong sự nghiệp của tôi. Nó đã thử thách tôi và giúp tôi trưởng thành theo nhiều cách. Chúng tôi muốn có nhiều người tham gia nhóm của chúng tôi

Thomas Betts Trưởng ban biên tập, Thiết kế và kiến ​​trúc phần mềm @InfoQ;

Viết cho InfoQ

Xếp hạng bài viết này

nhận con nuôi

Phong cách

Đã liên hệ với tác giả

Nội dung này nằm trong chủ đề Ngôn ngữ lập trình

chủ đề liên quan
  • Phát triển
  • Kết xuất phía máy chủ
  • JavaScript
  • PHP7. x Loạt bài báo
  • PHP7
  • PHP
  • Ngôn ngữ lập trình
  • Ngôn ngữ động
  • Lập trình hệ thống
  • NGUỒN SÁNG
  • Phát triển web

  • biên tập liên quan

    • Nội dung được tài trợ có liên quan

  • Nhà tài trợ liên quan

    Khám phá các xu hướng và thực tiễn mới nổi từ các chuyên gia tên miền. Tham dự trực tiếp hoặc trực tuyến tại QCon London [27-29 tháng 3 năm 2023]

Nội dung liên quan

  • PHP 8 - Các lớp và Enum

  • Apple công bố bản viết lại hoàn toàn nhanh chóng của Foundation Framework

  • Swift để thêm hỗ trợ cho quyền sở hữu, macro và tương tác C ++

  • PHP 8 – Hàm và Phương thức

  • PHP 8 — Thuộc tính, Biểu thức khớp và các cải tiến khác

  • Báo cáo xu hướng InfoQ về AI, ML và Kỹ thuật dữ liệu—Tháng 8 năm 2022

  • Vercel ra mắt các chức năng Edge để cung cấp tính toán tại Edge

  • Đã phát hành Vite 4, thay thế Babel bằng SWC dựa trên Rust nhanh hơn

  • Nâng cao, SSR cho các Thành phần Web - Brian Leroux tại QCon San Francisco 2022

  • Máy tính không máy chủ tốt hơn với WebAssugging

  • Triển khai Đăng nhập không cần mật khẩu với Giao thức WebAuthn

  • Tách mối quan tâm trong nút. js

  • Xoay một nút. js Monolith thành Monorepo mà không làm gián đoạn nhóm

  • Khả năng mở rộng nền tảng hiệu quả, an toàn thông qua WebAssugging

  • Sử dụng công cụ mã để chèn lỗi ở cấp ứng dụng tại eBay

  • Bài học từ quá trình di chuyển nền tảng gần đây của Spotify Mobile Engineering

  • Kích thước máy ảo Ebsv5 được tối ưu hóa bộ nhớ mới của Microsoft trong Bản xem trước mang lại hiệu suất cao hơn

  • AWS công bố GA của cụm đàn hồi DocumentDB

  • Kubernetes 1. 26 Đã phát hành với các thay đổi về sổ đăng ký hình ảnh, phân bổ tài nguyên nâng cao và số liệu

  • Các nhà nghiên cứu công bố khảo sát về học sâu hiệu quả về mặt thuật toán

  • Snyk công bố tính khả dụng chung của Snyk Cloud và các cải tiến cho nền tảng của nó

  • Bảo mật cụm Kafka trong Kubernetes bằng Strimzi

  • Kiểm tra quá khứ để cố gắng dự đoán tương lai cho việc xây dựng các ứng dụng phân tán

  • Entity Framework 7 mang đến các hoạt động hàng loạt và các cột JSON

  • Bộ công cụ di chuyển Eclipse cho Java [EMT4J] Đơn giản hóa việc nâng cấp các ứng dụng Java

  • Cách Starling xây dựng bộ xử lý thẻ của riêng họ

  • Cách SeatGeek xử lý thành công việc bán vé có nhu cầu cao

  • Máy chủ Cloudflare Chia sẻ địa chỉ IP cho lưu lượng đi ra

  • Giúp các nhóm thực hiện với Mô hình đánh giá thực hành chất lượng

  • Microsoft mang dịch vụ đám mây và AI của mình đến tận cùng

  • Tích hợp microservices được thực hiện ngay bằng cách sử dụng phát triển theo hợp đồng

  • Meta phát hành data2vec 2. 0 một mô hình tự giám sát hiệu quả cao

  • Google phát hành Công cụ quét lỗ hổng mã nguồn mở

  • Uber cải thiện năng suất với môi trường phát triển từ xa Devpod

  • Dịch vụ và con thú. Xây dựng một dịch vụ Windows không thể khởi động lại

  • NET MAUI Framework và. NET MAUI Community Toolkit Đã cập nhật cho. MẠNG 7

  • Tổng hợp tin tức về Java. Mây xuân 2022. 0. 0, Giới thiệu SourceBuddy, Jarviz và Just

  • máy học. MẠNG 2. 0 chứa API NLP mới và cập nhật AutoML

  • AWS công bố các thay đổi bảo mật sắp tới vào tháng 4 năm 2023 cho Amazon S3

  • Tầm quan trọng của các cổng chất lượng đường ống và cách triển khai chúng

Bản tin InfoQ

Tổng hợp nội dung của tuần trước trên InfoQ được gửi vào thứ Ba hàng tuần. Tham gia cộng đồng hơn 250.000 nhà phát triển cấp cao. Xem một ví dụ

Nhập địa chỉ email của bạn

Chọn quốc gia của bạn Tôi đồng ý với InfoQ. com xử lý dữ liệu của tôi như được giải thích trong Thông báo về quyền riêng tư này.

Chúng tôi bảo vệ quyền riêng tư của bạn

xin chào người lạ

Bạn cần Đăng ký tài khoản InfoQ hoặc Đăng nhập hoặc đăng nhập để gửi bình luận. Nhưng còn rất nhiều điều đằng sau việc đăng ký

Toán tử kết hợp trong PHP là gì?

PHP 7 đã giới thiệu toán tử hợp nhất null với ?? . Toán tử này trả về toán hạng đầu tiên nếu giá trị của nó đã được đặt và không phải NULL, nếu không, nó sẽ trả về toán hạng thứ hai .

giá trị rỗng là gì

Trong PHP 7, một tính năng mới, toán tử hợp nhất null [??] đã được giới thiệu. Nó được dùng để thay thế phép toán bậc ba kết hợp với hàm isset[] . Toán tử hợp nhất Null trả về toán hạng đầu tiên của nó nếu nó tồn tại và không phải là NULL; .

Điều gì đã thay đổi trong PHP 7?

PHP 7 thêm hỗ trợ cho khai báo kiểu trả về . Tương tự như khai báo kiểu đối số, khai báo kiểu trả về chỉ định loại giá trị sẽ được trả về từ một hàm. Các loại tương tự có sẵn cho các khai báo kiểu trả về cũng như có sẵn cho các khai báo kiểu đối số.

Toán tử nào sau đây được thêm vào trong PHP 7?

PHP 7. 0 thêm một toán tử so sánh mới [ ] để so sánh các biểu thức. PHP7. 0 thêm hỗ trợ cho cú pháp thoát điểm mã Unicode, để chuyển đổi dạng thập lục phân sang dạng mã hóa UTF-8 tương ứng. Câu lệnh sử dụng có thể nhóm các lớp, hàm và hằng ngay cả khi được nhập từ cùng một không gian tên.

Chủ Đề