PHP 7 - Hướng dẫn nhanh
PHP 7 là gì?
PHP 7 là một bản phát hành chính của ngôn ngữ lập trình PHP và được coi là một cuộc cách mạng trong cách các ứng dụng web có thể được phát triển và phân phối cho thiết bị di động cho các doanh nghiệp và đám mây. Bản phát hành này được coi là thay đổi quan trọng nhất đối với PHP sau khi phát hành PHP 5 vào năm 2004.
Các tính năng mới
Có hàng tá tính năng được thêm vào PHP 7, những tính năng quan trọng nhất được đề cập bên dưới:
Improved performance - Có mã PHPNG được hợp nhất trong PHP7, nó nhanh gấp đôi so với PHP 5.
Lower Memory Consumption - PHP 7 được tối ưu hóa sử dụng ít tài nguyên hơn.
Scalar type declarations - Bây giờ các kiểu tham số và trả về có thể được thực thi.
Consistent 64-bit support - Hỗ trợ nhất quán cho các máy kiến trúc 64-bit.
Improved Exception hierarchy - Hệ thống phân cấp ngoại lệ được cải thiện.
Many fatal errors converted to Exceptions - Phạm vi ngoại lệ được tăng lên bao gồm nhiều lỗi nghiêm trọng được chuyển đổi thành ngoại lệ.
Secure random number generator - Bổ sung API tạo số ngẫu nhiên an toàn mới.
Deprecated SAPIs and extensions removed - Nhiều SAPI cũ và không được hỗ trợ cũng như tiện ích mở rộng bị xóa khỏi phiên bản mới nhất.
The null coalescing operator (??) - Đã thêm toán tử liên kết null mới.
Return and Scalar Type Declarations - Hỗ trợ kiểu trả về và kiểu tham số được thêm vào.
Anonymous Classes - Hỗ trợ thêm ẩn danh.
Zero cost asserts - Hỗ trợ thêm xác nhận chi phí bằng không.
PHP 7 sử dụng Zend Engine 3.0 mới để cải thiện hiệu suất ứng dụng gần như gấp đôi và tiêu thụ bộ nhớ tốt hơn 50% so với PHP 5.6. Nó cho phép phục vụ nhiều người dùng đồng thời hơn mà không yêu cầu bất kỳ phần cứng bổ sung nào. PHP 7 được thiết kế và cấu trúc lại dựa trên khối lượng công việc ngày nay.
Theo nhóm Zend , các minh họa sau đây cho thấy sự so sánh hiệu suất của PHP 7 so với PHP 5.6 và HHVM 3.7 trên các ứng dụng dựa trên PHP phổ biến.
Magento 1.9
PHP 7 chứng tỏ bản thân nhanh hơn gấp đôi, so với PHP 5.6 trong khi thực hiện các giao dịch Magento.
Drupal 7
PHP 7 chứng tỏ bản thân nhanh hơn gấp đôi, so với PHP 5.6 trong khi thực hiện các giao dịch Drupal.
Wordpress 3.6
PHP 7 chứng tỏ bản thân nhanh hơn gấp đôi so với PHP 5.6 trong khi thực hiện các giao dịch Wordpress.
So sánh các ngôn ngữ động
Dùng thử Tùy chọn trực tuyến
Chúng tôi đã thiết lập môi trường Lập trình PHP trực tuyến để bạn có thể biên dịch và thực thi tất cả các ví dụ có sẵn trực tuyến. Nó mang lại cho bạn niềm tin vào những gì bạn đang đọc và cho phép bạn xác minh các chương trình bằng các tùy chọn khác nhau. Hãy sửa đổi bất kỳ ví dụ nào và thực hiện trực tuyến.
Hãy thử ví dụ sau bằng cách sử dụng trình biên dịch trực tuyến của chúng tôi có sẵn tại CodingGround.
<html> <head> <title>Online PHP Script Execution</title> </head> <body> <?php echo "<h1>Hello, PHP!</h1>"; ?> </body> </html>
Đối với hầu hết các ví dụ được đưa ra trong hướng dẫn này, bạn sẽ tìm thấy Try ittrong phần mã trang web của chúng tôi ở góc trên cùng bên phải sẽ đưa bạn đến trình biên dịch trực tuyến. Vì vậy, chỉ cần sử dụng và tận hưởng việc học của bạn.
Để phát triển và chạy các trang Web PHP, ba thành phần quan trọng cần được cài đặt trên hệ thống máy tính của bạn.
Web Server- PHP hoạt động với hầu như tất cả các phần mềm Web Server, bao gồm cả Internet Information Server (IIS) của Microsoft nhưng thường được sử dụng nhất là Apache Server. Tải Apache miễn phí tại đây -http://httpd.apache.org/download.cgi
Database- PHP PHP hoạt động với hầu như tất cả các phần mềm cơ sở dữ liệu, bao gồm cả Oracle và Sybase nhưng thông dụng nhất là cơ sở dữ liệu MySQL. Tải xuống MySQL miễn phí tại đây -http://www.mysql.com/downloads/
PHP Parser- Để xử lý các lệnh PHP script, một trình phân tích cú pháp phải được cài đặt để tạo ra đầu ra HTML có thể được gửi đến Trình duyệt Web. Hướng dẫn này sẽ hướng dẫn bạn cách cài đặt trình phân tích cú pháp PHP trên máy tính của bạn.
Cài đặt trình phân tích cú pháp PHP
Trước khi tiếp tục, điều quan trọng là đảm bảo rằng bạn đã thiết lập môi trường thích hợp trên máy của mình để phát triển các chương trình web bằng PHP. Lưu trữ tệp php sau trong thư mục htdocs của Apache.
phpinfo.php
<?php
phpinfo();
?>
Nhập địa chỉ sau vào hộp địa chỉ của trình duyệt của bạn.
http://127.0.0.1/phpinfo.php
Nếu điều này hiển thị một trang hiển thị thông tin liên quan đến cài đặt PHP của bạn, thì điều đó có nghĩa là bạn đã cài đặt PHP và Webserver đúng cách. Nếu không, bạn phải làm theo quy trình đã cho để cài đặt PHP trên máy tính của mình.
Phần này sẽ hướng dẫn bạn cài đặt và cấu hình PHP trên bốn nền tảng sau:
Cài đặt PHP trên Linux hoặc Unix với Apache
Cài đặt PHP trên Mac OS X với Apache
Cài đặt PHP trên Windows NT / 2000 / XP với IIS
Cài đặt PHP trên Windows NT / 2000 / XP với Apache
Cấu hình Apache
Nếu bạn đang sử dụng Apache làm Máy chủ Web, thì phần này sẽ hướng dẫn bạn chỉnh sửa Tệp cấu hình Apache.
Kiểm tra tại đây - Cấu hình PHP trong Máy chủ Apache
Cấu hình tệp PHP.INI
Tệp cấu hình PHP, php.ini, là cách cuối cùng và ngay lập tức để ảnh hưởng đến chức năng của PHP.
Kiểm tra tại đây - Cấu hình tệp PHP.INI
Cấu hình Windows IIS
Để cấu hình IIS trên máy Windows của bạn, bạn có thể tham khảo Sách hướng dẫn tham khảo IIS được cung cấp cùng với IIS.
Trong PHP 7, một tính năng mới, khai báo kiểu Scalar, đã được giới thiệu. Khai báo kiểu vô hướng có hai tùy chọn:
coercive - cưỡng chế là chế độ mặc định và không cần phải chỉ định.
strict - chế độ nghiêm ngặt phải gợi ý rõ ràng.
Các loại tham số hàm sau có thể được thực thi bằng cách sử dụng các chế độ trên:
- int
- float
- bool
- string
- interfaces
- array
- callable
Ví dụ - Chế độ cưỡng chế
<?php
// Coercive mode
function sum(int ...$ints) {
return array_sum($ints);
}
print(sum(2, '3', 4.1));
?>
Nó tạo ra đầu ra trình duyệt sau:
9
Ví dụ - Chế độ nghiêm ngặt
<?php
// Strict mode
declare(strict_types=1);
function sum(int ...$ints) {
return array_sum($ints);
}
print(sum(2, '3', 4.1));
?>
Nó tạo ra đầu ra trình duyệt sau:
Fatal error: Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, string given, ...
Trong PHP 7, một tính năng mới, Return type declarationsđã được giới thiệu. Khai báo kiểu trả về chỉ định kiểu giá trị mà một hàm sẽ trả về. Các kiểu sau cho kiểu trả về có thể được khai báo.
- int
- float
- bool
- string
- interfaces
- array
- callable
Ví dụ - Loại trả lại hợp lệ
<?php
declare(strict_types = 1);
function returnIntValue(int $value): int {
return $value;
}
print(returnIntValue(5));
?>
Nó tạo ra đầu ra trình duyệt sau:
5
Ví dụ - Loại trả lại không hợp lệ
<?php
declare(strict_types = 1);
function returnIntValue(int $value): int {
return $value + 1.0;
}
print(returnIntValue(5));
?>
Nó tạo ra đầu ra trình duyệt sau:
Fatal error: Uncaught TypeError: Return value of returnIntValue() must be of the type integer, float returned...
Trong PHP 7, một tính năng mới, null coalescing operator (??)đã được giới thiệu. Nó được sử dụng để thay thếternaryhoạt động kết hợp với hàm Isset (). CácNulltoán tử kết hợp 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; nếu không thì nó trả về toán hạng thứ hai của nó.
Thí dụ
<?php
// fetch the value of $_GET['user'] and returns 'not passed'
// if username is not passed
$username = $_GET['username'] ?? 'not passed';
print($username);
print("<br/>");
// Equivalent code using ternary operator
$username = isset($_GET['username']) ? $_GET['username'] : 'not passed';
print($username);
print("<br/>");
// Chaining ?? operation
$username = $_GET['username'] ?? $_POST['username'] ?? 'not passed';
print($username);
?>
Nó tạo ra đầu ra trình duyệt sau:
not passed
not passed
not passed
Trong PHP 7, một tính năng mới, toán tử tàu vũ trụ đã được giới thiệu. Nó được sử dụng để so sánh hai biểu thức. Nó trả về -1, 0 hoặc 1 khi biểu thức đầu tiên tương ứng nhỏ hơn, bằng hoặc lớn hơn biểu thức thứ hai.
Thí dụ
<?php
//integer comparison
print( 1 <=> 1);print("<br/>");
print( 1 <=> 2);print("<br/>");
print( 2 <=> 1);print("<br/>");
print("<br/>");
//float comparison
print( 1.5 <=> 1.5);print("<br/>");
print( 1.5 <=> 2.5);print("<br/>");
print( 2.5 <=> 1.5);print("<br/>");
print("<br/>");
//string comparison
print( "a" <=> "a");print("<br/>");
print( "a" <=> "b");print("<br/>");
print( "b" <=> "a");print("<br/>");
?>
Nó tạo ra đầu ra trình duyệt sau:
0
-1
1
0
-1
1
0
-1
1
Hằng số mảng bây giờ có thể được xác định bằng cách sử dụng define()chức năng. Trong PHP 5.6, chúng chỉ có thể được định nghĩa bằng cách sử dụngconst từ khóa.
Thí dụ
<?php
//define a array using define function
define('animals', [
'dog',
'cat',
'bird'
]);
print(animals[1]);
?>
Nó tạo ra đầu ra trình duyệt sau:
cat
Các lớp ẩn danh bây giờ có thể được định nghĩa bằng cách sử dụng lớp mới. Lớp ẩn danh có thể được sử dụng thay cho định nghĩa lớp đầy đủ.
Thí dụ
<?php
interface Logger {
public function log(string $msg);
}
class Application {
private $logger;
public function getLogger(): Logger {
return $this->logger;
}
public function setLogger(Logger $logger) {
$this->logger = $logger;
}
}
$app = new Application;
$app->setLogger(new class implements Logger {
public function log(string $msg) {
print($msg);
}
});
$app->getLogger()->log("My first Log Message");
?>
Nó tạo ra đầu ra trình duyệt sau:
My first Log Message
Closure::call()phương thức được thêm vào như một cách viết tắt để tạm thời ràng buộc phạm vi đối tượng với một bao đóng và gọi nó. Nó nhanh hơn nhiều về hiệu suất so vớibindTo của PHP 5.6.
Ví dụ - Pre PHP 7
<?php
class A {
private $x = 1;
}
// Define a closure Pre PHP 7 code
$getValue = function() {
return $this->x;
};
// Bind a clousure
$value = $getValue->bindTo(new A, 'A');
print($value());
?>
Nó tạo ra đầu ra trình duyệt sau:
1
Ví dụ - PHP 7+
<?php
class A {
private $x = 1;
}
// PHP 7+ code, Define
$value = function() {
return $this->x;
};
print($value->call(new A));
?>
Nó tạo ra đầu ra trình duyệt sau:
1
PHP 7 giới thiệu Filtered unserialize()chức năng cung cấp khả năng bảo mật tốt hơn khi phi số hóa các đối tượng trên dữ liệu không đáng tin cậy. Nó ngăn chặn việc tiêm mã có thể xảy ra và cho phép nhà phát triển đưa vào danh sách trắng các lớp có thể chưa được công nghệ hóa.
Thí dụ
<?php
class MyClass1 {
public $obj1prop;
}
class MyClass2 {
public $obj2prop;
}
$obj1 = new MyClass1();
$obj1->obj1prop = 1;
$obj2 = new MyClass2();
$obj2->obj2prop = 2;
$serializedObj1 = serialize($obj1);
$serializedObj2 = serialize($obj2);
// default behaviour that accepts all classes
// second argument can be ommited.
// if allowed_classes is passed as false, unserialize converts all objects into __PHP_Incomplete_Class object
$data = unserialize($serializedObj1 , ["allowed_classes" => true]);
// converts all objects into __PHP_Incomplete_Class object except those of MyClass1 and MyClass2
$data2 = unserialize($serializedObj2 , ["allowed_classes" => ["MyClass1", "MyClass2"]]);
print($data->obj1prop);
print("<br/>");
print($data2->obj2prop);
?>
Nó tạo ra đầu ra trình duyệt sau:
1
2
Trong PHP7, một IntlCharlớp được thêm vào, tìm cách để lộ chức năng ICU bổ sung. Lớp này định nghĩa một số phương thức tĩnh và hằng số, có thể được sử dụng để thao tác với các ký tự unicode. Bạn cần phải cóIntl đã cài đặt trước khi sử dụng lớp này.
Thí dụ
<?php
printf('%x', IntlChar::CODEPOINT_MAX);
print (IntlChar::charName('@'));
print(IntlChar::ispunct('!'));
?>
Nó tạo ra đầu ra trình duyệt sau:
10ffff
COMMERCIAL AT
true
Trong PHP 7, hai hàm mới sau đây được giới thiệu để tạo các chuỗi và số nguyên an toàn bằng mật mã theo cách đa nền tảng.
random_bytes() - Tạo các byte giả ngẫu nhiên an toàn bằng mật mã.
random_int() - Tạo số nguyên giả ngẫu nhiên an toàn bằng mật mã.
random_bytes ()
random_bytes () tạo ra một chuỗi byte ngẫu nhiên mật mã có độ dài tùy ý thích hợp cho việc sử dụng mật mã, chẳng hạn như khi tạo muối, khóa hoặc vectơ khởi tạo.
Cú pháp
string random_bytes ( int $length )
Thông số
length - Độ dài của chuỗi ngẫu nhiên cần được trả về theo byte.
Giá trị trả lại
Trả về một chuỗi chứa số byte ngẫu nhiên được bảo mật bằng mật mã được yêu cầu.
Lỗi / Ngoại lệ
Nếu không thể tìm thấy một nguồn ngẫu nhiên thích hợp, một Ngoại lệ sẽ được ném ra.
Nếu các tham số không hợp lệ được cung cấp, TypeError sẽ được ném.
Nếu cung cấp độ dài byte không hợp lệ, một Lỗi sẽ được đưa ra.
Thí dụ
<?php
$bytes = random_bytes(5);
print(bin2hex($bytes));
?>
Nó tạo ra đầu ra trình duyệt sau:
54cc305593
random_int ()
random_int() tạo ra các số nguyên ngẫu nhiên mật mã phù hợp để sử dụng khi các kết quả không thiên vị là rất quan trọng.
Cú pháp
int random_int ( int $min , int $max )
Thông số
min - Giá trị thấp nhất được trả về, phải là PHP_INT_MIN hoặc cao hơn.
max - Giá trị cao nhất được trả về, phải nhỏ hơn hoặc bằng PHP_INT_MAX.
Giá trị trả lại
Trả về một số nguyên ngẫu nhiên an toàn bằng mật mã trong phạm vi từ tối thiểu đến tối đa, bao gồm.
Lỗi / Ngoại lệ
Nếu không tìm được nguồn ngẫu nhiên thích hợp, Exception sẽ được ném.
Nếu các tham số không hợp lệ được cung cấp, TypeError sẽ được ném.
Nếu tối đa nhỏ hơn tối thiểu, Error sẽ được ném.
Thí dụ
<?php
print(random_int(100, 999));
print(" ");
print(random_int(-1000, 0));
?>
Nó tạo ra đầu ra trình duyệt sau:
614
-882
Expectationslà một tính năng nâng cao tương thích ngược với hàm khẳng định () cũ hơn. Kỳ vọng cho phép xác nhận chi phí bằng không trong mã sản xuất và cung cấp khả năng đưa ra các ngoại lệ tùy chỉnh khi xác nhận không thành công. khẳng định () bây giờ là một cấu trúc ngôn ngữ, trong đó tham số đầu tiên là một biểu thức được so sánh với một chuỗi hoặc Boolean sẽ được kiểm tra.
Chỉ thị cấu hình cho khẳng định ()
Chỉ thị | Giá trị mặc định | Những giá trị khả thi |
---|---|---|
zend.assertions | 1 | 1 - tạo và thực thi mã (chế độ phát triển) 0 - tạo mã nhưng nhảy xung quanh nó trong thời gian chạy -1 - không tạo mã (chế độ sản xuất) |
assert.exception | 0 | 1 - ném, khi xác nhận không thành công, bằng cách ném đối tượng được cung cấp làm ngoại lệ hoặc bằng cách ném một AssertionError đối tượng nếu ngoại lệ không được cung cấp. 0 - sử dụng hoặc tạo một Throwable như được mô tả ở trên, nhưng chỉ tạo cảnh báo dựa trên đối tượng đó thay vì ném nó (tương thích với hành vi PHP 5) |
Thông số
assertion- Sự khẳng định. Trong PHP 5, đây phải là một chuỗi được đánh giá hoặc là một Boolean để được kiểm tra. Trong PHP 7, đây cũng có thể là bất kỳ biểu thức nào trả về giá trị, giá trị này sẽ được thực thi và kết quả được sử dụng để cho biết xác nhận thành công hay thất bại.
description - Một mô tả tùy chọn sẽ được bao gồm trong thông báo lỗi, nếu xác nhận không thành công.
exception - Trong PHP 7, tham số thứ hai có thể là Throwable đối tượng thay vì một chuỗi mô tả, trong trường hợp đó đây là đối tượng sẽ được ném, nếu xác nhận không thành công và assert.exception chỉ thị cấu hình được bật.
Giá trị trả lại
FALSE nếu khẳng định là sai, TRUE nếu không thì.
Thí dụ
<?php
ini_set('assert.exception', 1);
class CustomError extends AssertionError {}
assert(false, new CustomError('Custom Error Message!'));
?>
Nó tạo ra đầu ra trình duyệt sau:
Fatal error: Uncaught CustomError: Custom Error Message! in...
Từ PHP7 trở đi, một câu lệnh sử dụng một lần có thể được sử dụng để nhập các Lớp, hàm và hằng số từ cùng một không gian tên thay vì sử dụng nhiều câu lệnh.
Thí dụ
<?php
// Before PHP 7
use com\tutorialspoint\ClassA;
use com\tutorialspoint\ClassB;
use com\tutorialspoint\ClassC as C;
use function com\tutorialspoint\fn_a;
use function com\tutorialspoint\fn_b;
use function com\tutorialspoint\fn_c;
use const com\tutorialspoint\ConstA;
use const com\tutorialspoint\ConstB;
use const com\tutorialspoint\ConstC;
// PHP 7+ code
use com\tutorialspoint\{ClassA, ClassB, ClassC as C};
use function com\tutorialspoint\{fn_a, fn_b, fn_c};
use const com\tutorialspoint\{ConstA, ConstB, ConstC};
?>
Từ PHP 7, việc xử lý và báo cáo lỗi đã được thay đổi. Thay vì báo cáo lỗi thông qua cơ chế báo cáo lỗi truyền thống được sử dụng bởi PHP 5, giờ đây hầu hết các lỗi được xử lý bằng cách ném các ngoại lệ Lỗi. Tương tự như các ngoại lệ, các ngoại lệ Lỗi này sẽ bong bóng cho đến khi chúng đạt đến khối bắt phù hợp đầu tiên. Nếu không có khối phù hợp, thì một trình xử lý ngoại lệ mặc định được cài đặt vớiset_exception_handler()sẽ được gọi. Trong trường hợp không có trình xử lý ngoại lệ mặc định, thì ngoại lệ sẽ được chuyển thành lỗi nghiêm trọng và sẽ được xử lý giống như lỗi truyền thống.
Vì hệ thống phân cấp Lỗi không được mở rộng từ Exception, mã sử dụng khối catch (Exception $ e) {...} để xử lý các ngoại lệ không có trong PHP 5 sẽ không xử lý các lỗi như vậy. Một khối bắt (Lỗi $ e) {...} hoặc mộtset_exception_handler() cần có trình xử lý để xử lý các lỗi nghiêm trọng.
Thí dụ
<?php
class MathOperations {
protected $n = 10;
// Try to get the Division by Zero error object and display as Exception
public function doOperation(): string {
try {
$value = $this->n % 0;
return $value;
} catch (DivisionByZeroError $e) {
return $e->getMessage();
}
}
}
$mathOperationsObj = new MathOperations();
print($mathOperationsObj->doOperation());
?>
Nó tạo ra đầu ra trình duyệt sau:
Modulo by zero
PHP 7 giới thiệu một chức năng mới intdiv(), thực hiện phép chia số nguyên cho các toán hạng của nó và trả về phép chia dưới dạng int.
Thí dụ
<?php
$value = intdiv(10,3);
var_dump($value);
print(" ");
print($value);
?>
Nó tạo ra đầu ra trình duyệt sau:
int(3)
3
Từ PHP7 +, session_start() hàm 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 được đặt trong php.ini. Các tùy chọn này hỗ trợsession.lazy_write, theo mặc định được bật và khiến PHP ghi đè lên bất kỳ tệp phiên nào nếu dữ liệu phiên đã thay đổi.
Một tùy chọn khác được thêm vào là read_and_close, chỉ ra rằng dữ liệu phiên sẽ được đọc và sau đó phiên ngay lập tức được đóng lại không thay đổi. Ví dụ, Đặtsession.cache_limiter ở chế độ riêng tư và đặt cờ để đóng phiên ngay sau khi đọc nó, bằng cách sử dụng đoạn mã sau.
<?php
session_start([
'cache_limiter' => 'private',
'read_and_close' => true,
]);
?>
Các tính năng sau không được dùng nữa và có thể bị xóa khỏi các phiên bản PHP trong tương lai.
Các trình tạo kiểu PHP 4
PHP 4 style Constructors là các phương thức có cùng tên với lớp mà chúng được định nghĩa, hiện không được dùng nữa và sẽ bị loại bỏ trong tương lai. PHP 7 sẽ phát ra E_DEPRECATED nếu một phương thức khởi tạo PHP 4 là phương thức khởi tạo duy nhất được định nghĩa trong một lớp. Các lớp triển khai phương thức __construct () không bị ảnh hưởng.
Thí dụ
<?php
class A {
function A() {
print('Style Constructor');
}
}
?>
Nó tạo ra đầu ra trình duyệt sau:
Deprecated: Methods with the same name as their class will not be constructors
in a future version of PHP; A has a deprecated constructor in...
Các lệnh gọi tĩnh đến các phương thức không tĩnh
Lệnh gọi tĩnh đến các phương thức không phải tĩnh không còn được dùng nữa và có thể bị xóa trong tương lai.
Thí dụ
<?php
class A {
function b() {
print('Non-static call');
}
}
A::b();
?>
Nó tạo ra đầu ra trình duyệt sau:
Deprecated: Non-static method A::b() should not be called statically in...
Non-static call
tùy chọn muối password_hash ()
Tùy chọn muối cho password_hash()chức năng đã không được chấp nhận để các nhà phát triển không tạo ra các muối của riêng họ (thường là không an toàn). Bản thân hàm này tạo ra một muối an toàn bằng mật mã, khi nhà phát triển không cung cấp muối nào - do đó, việc tạo muối tùy chỉnh không cần thiết nữa.
tùy chọn ngữ cảnh SSL capture_session_meta
Các capture_session_metaTùy chọn ngữ cảnh SSL không được dùng nữa. Siêu dữ liệu SSL hiện được sử dụng thông quastream_get_meta_data() chức năng.
Các tiện ích mở rộng sau đã bị xóa khỏi PHP 7 trở đi -
- ereg
- mssql
- mysql
- sybase_ct
Các SAPI sau đã bị xóa khỏi PHP 7 trở đi -
- aolserver
- apache
- apache_hooks
- apache2filter
- caudium
- continuity
- isapi
- milter
- nsapi
- phttpd
- pi3web
- roxen
- thttpd
- tux
- webjames