Hướng dẫn php 7 new features with examples - php 7 tính năng mới với các ví dụ

Tuyên bố loại vô hướng

Khai báo loại vô hướng có hai hương vị: cưỡng chế (mặc định) và nghiêm ngặt. Các loại sau đây cho các tham số hiện có thể được thực thi (một cách nghiêm khắc hoặc nghiêm ngặt): chuỗi (chuỗi), số nguyên (int), số điểm nổi (float) và booleans (bool). Họ tăng cường các loại khác được giới thiệu trong Php 5: tên lớp, giao diện, mảng và có thể gọi được.string), integers (int), floating-point numbers (float), and booleans (bool). They augment the other types introduced in PHP 5: class names, interfaces, array and callable.

Show

<?php
// Coercive mode
function sumOfInts(int ...$ints)
{
    return 
array_sum($ints);
}
var_dump(sumOfInts(2'3'4.1));

Ví dụ trên sẽ xuất ra:

Để bật chế độ nghiêm ngặt, một chỉ thị declare phải được đặt ở đầu tệp. Điều này có nghĩa là sự nghiêm ngặt của việc gõ cho vô hướng được cấu hình trên cơ sở mỗi tệp. Chỉ thị này không chỉ ảnh hưởng đến các khai báo loại của các tham số, mà còn cả loại trả về của hàm (xem khai báo loại trả về, các hàm PHP tích hợp và các hàm từ các tiện ích mở rộng được tải.

Tài liệu đầy đủ và các ví dụ về khai báo loại vô hướng có thể được tìm thấy trong tham chiếu khai báo loại.

Trả lại loại khai báo

Php 7 thêm hỗ trợ cho khai báo loại trả lại. Tương tự như khai báo loại đối số, khai báo loại 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 loại trả lại như có sẵn cho các khai báo loại đối số.

<?phpfunction arraysSum(array ...$arrays): array
{
    return 
array_map(function(array $array): int {
        return 
array_sum($array);
    }, 
$arrays);
}
print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));

Ví dụ trên sẽ xuất ra:

Array
(
    [0] => 6
    [1] => 15
    [2] => 24
)

Để bật chế độ nghiêm ngặt, một chỉ thị declare phải được đặt ở đầu tệp. Điều này có nghĩa là sự nghiêm ngặt của việc gõ cho vô hướng được cấu hình trên cơ sở mỗi tệp. Chỉ thị này không chỉ ảnh hưởng đến các khai báo loại của các tham số, mà còn cả loại trả về của hàm (xem khai báo loại trả về, các hàm PHP tích hợp và các hàm từ các tiện ích mở rộng được tải.

Tài liệu đầy đủ và các ví dụ về khai báo loại vô hướng có thể được tìm thấy trong tham chiếu khai báo loại.

Trả lại loại khai báoisset(). It returns its first operand if it exists and is not

object(class@anonymous)#2 (0) {
}
1; otherwise it returns its second operand.

object(class@anonymous)#2 (0) {
}
2

Php 7 thêm hỗ trợ cho khai báo loại trả lại. Tương tự như khai báo loại đối số, khai báo loại 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 loại trả lại như có sẵn cho các khai báo loại đối số.

Tài liệu đầy đủ và các ví dụ về khai báo loại trả lại có thể được tìm thấy trong các khai báo loại trả về. tài liệu tham khảo.

object(class@anonymous)#2 (0) {
}
3

object(class@anonymous)#2 (0) {
}
4

object(class@anonymous)#2 (0) {
}
5

Nhà điều hành NULL kết hợpdefine()

Toán tử Null Coalescing (

object(class@anonymous)#2 (0) {
}
0) đã được thêm vào làm đường cú pháp cho trường hợp phổ biến cần sử dụng ternary kết hợp với isset (). Nó trả lại toán hạng đầu tiên của nó nếu nó tồn tại và không phải là
object(class@anonymous)#2 (0) {
}
1; Nếu không, nó trả lại toán hạng thứ hai của nó. constants can now be defined with define(). In PHP 5.6, they could only be defined with
object(class@anonymous)#2 (0) {
}
6.

object(class@anonymous)#2 (0) {
}
7

object(class@anonymous)#2 (0) {
}
8

object(class@anonymous)#2 (0) {
}
9

Nhà điều hành tàu vũ trụ

Toán tử tàu vũ trụ được sử dụng để so sánh hai biểu thức. Nó trả về -1, 0 hoặc 1 khi $ a tương ứng nhỏ hơn, bằng hoặc lớn hơn $ b. So sánh được thực hiện theo các quy tắc so sánh loại thông thường của PHP.

ª
ª (same as before but with optional leading 0's)
香
1

ª
ª (same as before but with optional leading 0's)
香
2

ª
ª (same as before but with optional leading 0's)
香
3

Ví dụ trên sẽ xuất ra:

object(class@anonymous)#2 (0) {
}

Để bật chế độ nghiêm ngặt, một chỉ thị declare phải được đặt ở đầu tệp. Điều này có nghĩa là sự nghiêm ngặt của việc gõ cho vô hướng được cấu hình trên cơ sở mỗi tệp. Chỉ thị này không chỉ ảnh hưởng đến các khai báo loại của các tham số, mà còn cả loại trả về của hàm (xem khai báo loại trả về, các hàm PHP tích hợp và các hàm từ các tiện ích mở rộng được tải.

Tài liệu đầy đủ và các ví dụ về khai báo loại vô hướng có thể được tìm thấy trong tham chiếu khai báo loại.

Trả lại loại khai báo

ª
ª (same as before but with optional leading 0's)
香
4

Ví dụ trên sẽ xuất ra:

ª
ª (same as before but with optional leading 0's)
香

Closure::call()

Để bật chế độ nghiêm ngặt, một chỉ thị declare phải được đặt ở đầu tệp. Điều này có nghĩa là sự nghiêm ngặt của việc gõ cho vô hướng được cấu hình trên cơ sở mỗi tệp. Chỉ thị này không chỉ ảnh hưởng đến các khai báo loại của các tham số, mà còn cả loại trả về của hàm (xem khai báo loại trả về, các hàm PHP tích hợp và các hàm từ các tiện ích mở rộng được tải. is a more performant, shorthand way of temporarily binding an object scope to a closure and invoking it.

ª
ª (same as before but with optional leading 0's)
香
5

Ví dụ trên sẽ xuất ra:

Tài liệu đầy đủ và các ví dụ về khai báo loại vô hướng có thể được tìm thấy trong tham chiếu khai báo loại.unserialize()

Trả lại loại khai báo

ª
ª (same as before but with optional leading 0's)
香
6

Php 7 thêm hỗ trợ cho khai báo loại trả lại. Tương tự như khai báo loại đối số, khai báo loại 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 loại trả lại như có sẵn cho các khai báo loại đối số.

Tài liệu đầy đủ và các ví dụ về khai báo loại trả lại có thể được tìm thấy trong các khai báo loại trả về. tài liệu tham khảo.IntlChar class seeks to expose additional ICU functionality. The class itself defines a number of static methods and constants that can be used to manipulate unicode characters.

ª
ª (same as before but with optional leading 0's)
香
7

ª
ª (same as before but with optional leading 0's)
香
8

ª
ª (same as before but with optional leading 0's)
香
9

Ví dụ trên sẽ xuất ra:

10ffff
COMMERCIAL AT
bool(true)

Nhà điều hành NULL kết hợp

Toán tử Null Coalescing (object(class@anonymous)#2 (0) { } 0) đã được thêm vào làm đường cú pháp cho trường hợp phổ biến cần sử dụng ternary kết hợp với isset (). Nó trả lại toán hạng đầu tiên của nó nếu nó tồn tại và không phải là object(class@anonymous)#2 (0) { } 1; Nếu không, nó trả lại toán hạng thứ hai của nó.

Nhà điều hành tàu vũ trụassert() function. They allow for zero-cost assertions in production code, and provide the ability to throw custom exceptions when the assertion fails.

Toán tử tàu vũ trụ được sử dụng để so sánh hai biểu thức. Nó trả về -1, 0 hoặc 1 khi $ a tương ứng nhỏ hơn, bằng hoặc lớn hơn $ b. So sánh được thực hiện theo các quy tắc so sánh loại thông thường của PHP.assert() is now a language construct, allowing the first parameter to be an expression rather than just a string to be evaluated or a bool value to be tested.

10ffff
COMMERCIAL AT
bool(true)
0

ª
ª (same as before but with optional leading 0's)
香
2

Mảng liên tục bằng cách sử dụng DEFINE ()

Ví dụ trên sẽ xuất ra:

Fatal error: Uncaught CustomError: Some error message

Các hằng số mảng bây giờ có thể được xác định với xác định (). Trong Php 5.6, chúng chỉ có thể được xác định với

object(class@anonymous)#2 (0) {
}
6.assert() reference.

Các lớp ẩn danh

Hỗ trợ cho các lớp ẩn danh đã được thêm vào thông qua

ª
ª (same as before but with optional leading 0's)
香
0. Chúng có thể được sử dụng thay cho các định nghĩa lớp đầy đủ cho các đối tượng vứt bỏ:

10ffff
COMMERCIAL AT
bool(true)
6

10ffff
COMMERCIAL AT
bool(true)
7

10ffff
COMMERCIAL AT
bool(true)
8

Tài liệu đầy đủ có thể được tìm thấy trong tài liệu tham khảo lớp ẩn danh.

Unicode CodePoint Escap

ª
ª (same as before but with optional leading 0's)
香
7

Fatal error: Uncaught CustomError: Some error message
2

Fatal error: Uncaught CustomError: Some error message
3

Ví dụ trên sẽ xuất ra:

Có thể trả về một cách rõ ràng một giá trị cuối cùng từ một trình tạo là một khả năng tiện dụng để có. Điều này là do nó cho phép một giá trị cuối cùng được trả về bởi một trình tạo (có lẽ từ một số dạng tính toán coroutine) có thể được xử lý cụ thể bởi mã máy khách thực hiện trình tạo. Điều này đơn giản hơn nhiều so với việc buộc mã máy khách phải kiểm tra trước tiên liệu giá trị cuối cùng có được mang lại hay không, và sau đó, nếu vậy, để xử lý giá trị đó một cách cụ thể.

Phái đoàn máy phát điện

Trình tạo hiện có thể ủy thác cho một trình tạo khác, đối tượng có thể đi qua hoặc mảng tự động, mà không cần phải viết Boilerplate trong trình tạo ngoài cùng bằng cách sử dụng cấu trúc

Fatal error: Uncaught CustomError: Some error message
4.Traversable object or array automatically, without needing to write boilerplate in the outermost generator by using the
Fatal error: Uncaught CustomError: Some error message
4 construct.

Fatal error: Uncaught CustomError: Some error message
5

Fatal error: Uncaught CustomError: Some error message
6

Fatal error: Uncaught CustomError: Some error message
7

Ví dụ trên sẽ xuất ra:

Phân chia số nguyên với intdiv ()intdiv()

Hàm intdiv () mới thực hiện phân chia số nguyên của các toán hạng của nó và trả về nó.intdiv() function performs an integer division of its operands and returns it.

Fatal error: Uncaught CustomError: Some error message
8

Ví dụ trên sẽ xuất ra:

Tùy chọn phiên

session_start () hiện chấp nhận một loạt các tùy chọn ghi đè các chỉ thị cấu hình phiên thường được đặt trong php.ini. now accepts an array of options that override the session configuration directives normally set in php.ini.

Các tùy chọn này cũng đã được mở rộng để hỗ trợ phiên Chỉ ra rằng dữ liệu phiên nên được đọc và sau đó phiên nên được đóng ngay lập tức không thay đổi.session_start() to indicate that the session data should be read and then the session should immediately be closed unchanged.

Ví dụ: để đặt phiên.Cache_Limiter thành int0 và ngay lập tức đóng phiên sau khi đọc nó:

int1

preg_replace_callback_array()

Hàm preg_replace_callback_array () mới cho phép mã được viết sạch hơn khi sử dụng hàm preg_replace_callback (). Trước PHP 7, các cuộc gọi lại cần được thực thi cho mỗi biểu thức thông thường yêu cầu chức năng gọi lại bị ô nhiễm với rất nhiều phân nhánh.preg_replace_callback_array() function enables code to be written more cleanly when using the preg_replace_callback() function. Prior to PHP 7, callbacks that needed to be executed per regular expression required the callback function to be polluted with lots of branching.

Bây giờ, các cuộc gọi lại có thể được đăng ký vào từng biểu thức thông thường bằng một mảng kết hợp, trong đó khóa là biểu thức chính quy và giá trị là một cuộc gọi lại.

Chức năng CSPRNG

Hai hàm mới đã được thêm vào để tạo các số nguyên và chuỗi bảo mật bằng mã hóa theo cách chéo: Random_Bytes () và Random_int ().random_bytes() and random_int().

Danh sách () luôn có thể giải nén các đối tượng triển khai ArrayAccess can always unpack objects implementing ArrayAccess

Trước đây, List () không được đảm bảo hoạt động chính xác với các đối tượng triển khai ArrayAccess. Điều này đã được sửa chữa.list() was not guaranteed to operate correctly with objects implementing ArrayAccess. This has been fixed.

Các tính năng khác

  • Truy cập thành viên lớp trên nhân bản đã được thêm vào, ví dụ: int2.

Paweld ¶

6 năm trước

int3

int4

int5

int6

int7

Adrian Wiik ¶

2 năm trước

int8

int9

int7

Julian Sawicki ¶

2 năm trước

bool1

bool2

int7

Julian Sawicki ¶

2 năm trước

bool4

bool5

bool6

bool7

Julian Sawicki ¶

2 năm trước

bool8

bool9

int7

Julian Sawicki ¶

Ricasiano tại Gmail Dot Com ¶

<?php
// Coercive mode
function sumOfInts(int ...$ints)
{
    return 
array_sum($ints);
}
var_dump(sumOfInts(2'3'4.1));
1

<?php
// Coercive mode
function sumOfInts(int ...$ints)
{
    return 
array_sum($ints);
}
var_dump(sumOfInts(2'3'4.1));
2

<?php
// Coercive mode
function sumOfInts(int ...$ints)
{
    return 
array_sum($ints);
}
var_dump(sumOfInts(2'3'4.1));
3

int7

Terrye ¶

2 năm trước

<?php
// Coercive mode
function sumOfInts(int ...$ints)
{
    return 
array_sum($ints);
}
var_dump(sumOfInts(2'3'4.1));
5

<?php
// Coercive mode
function sumOfInts(int ...$ints)
{
    return 
array_sum($ints);
}
var_dump(sumOfInts(2'3'4.1));
6

<?php
// Coercive mode
function sumOfInts(int ...$ints)
{
    return 
array_sum($ints);
}
var_dump(sumOfInts(2'3'4.1));
7

int7

Các tính năng mới trong PHP 7 là gì?

Key Takeaways..
Php 7.0 Đã thêm khai báo loại vô hướng cho chuỗi, số nguyên, số dấu phẩy động và booleans ..
Php 7.0 được thêm hỗ trợ cho khai báo loại trả lại ..
Php 7.1 đã thêm hỗ trợ cho các loại tham số vô hiệu và loại trả về ..
Void là loại trả lại hợp lệ kể từ Php 7.1 ..

Nhà điều hành mới nào sau đây được thêm vào 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.Php 7.0 bổ sung hỗ trợ cho cú pháp EscapoT Escape Unicode, để chuyển đổi dạng thập lục phân sang dạng mã hóa UTF-8 tương ứng.Tuyên bố sử dụng có thể nhóm các lớp, chức năng và hằng số ngay cả khi được nhập từ cùng một không gian tên.<=>) to compare expressions. PHP 7.0 adds support for Unicode codepoint escape syntax, to convert an hexadecimal form to the corresponding UTF-8 encoded form. The use statement may group classes, functions, and constants even when imported from the same namespace.

Sự khác biệt giữa PHP 7 và PHP 8 là gì?

Php 8 mang đến một loạt các tính năng mới cải tiến, chức năng và khấu hao cho ngôn ngữ so với PHP 7. Trong số tất cả các tính năng mới này, trình biên dịch JIT là người chia sẻ ánh đèn sân khấu.. Among all of these new features, the JIT compiler is the one sharing the limelight.

Ưu điểm của PHP 7 là gì?

Ưu đãi PHP 7 là bốn loại trả về khác nhau: bool, int, string và float.Php 7 cũng cung cấp xử lý lỗi được cải thiện.Xử lý các lỗi gây tử vong và có thể bắt được chưa bao giờ là một nhiệm vụ dễ dàng đối với các lập trình viên PHP, nhưng các ngoại lệ động cơ mới trong PHP 7 sẽ cho phép bạn thay thế các loại lỗi này bằng các trường hợp ngoại lệ.improved error handling. Handling fatal and catchable fatal errors has never been an easy task for PHP coders, but the new Engine Exceptions in PHP 7 will allow you to replace these kinds of errors with exceptions.