亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP 7.3更新內容的詳細介紹

2020-03-22 17:36:04
字體:
來源:轉載
供稿:網友
本篇文章給大家帶來的內容是關于PHP 7.3更新內容的詳細介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

PHP 目前依舊是其它腳本語言強勁的競爭對手,這主要歸功于其核心維護團隊的快速更新。

自從 PHP 7.0 發布以來,社區見證了許多新特性的誕生,極大地改進了開發者在項目中應用 PHP 的方式。提高 PHP 應用的性能和安全性,是這些改進的主要目的。

PHP 最近實現了又一個里程碑 —— 發布 PHP 7.3。新版本帶來了一些急需的更新。

在本文中,我將論述新推出的 PHP 7.3 特性 和更新。好消息是,你可以在你的測試服務器上自行安裝新版本、查看新功能。但老生常談,切勿在生產服務器上使用 RC 版本更新,可能會破壞你已經上線的應用。

以下是7.3版中引入的一些更新,與以前的版本相比,它們大大提高了 PHP 7.3 的性能 。

靈活的 Heredoc 和 Nowdoc 語法

函數調用時允許尾隨逗號

JSON_THROW_ON_ERROR

PCRE2 遷移

list() 分配參考

is_countable 函數

array_key_first(), array_key_last()

Argon2 密碼哈希增強功能

棄用和刪除 image2wbmp()

棄用和刪除不區分大小寫的常量

相同站點 html' target='_blank'>Cookie

FPM 更新

改進 Windows 下的文件刪除

讓我們逐一討論上述的每一個更新。

靈活的 Heredoc 和 Nowdoc 語法

Heredoc 和 Nowdoc 語法能夠在使用多行長字符串時起到很大幫助。它要求結束標識符應當為出現在新行的首個字符串。

// 除了這樣:$query = SQLSELECT *FROM `table`WHERE `column` = true;// 這樣也可以:$query = SQL SELECT * FROM `table` WHERE `column` = true; SQL;

總的來說,此更新提出了兩項改進,如下:

閉合標識符前支持縮進

閉合標識符后不再強制換行

在上面的例子里,可以很容易地看出這些改動。

函數調用中允許尾部逗號

在參數、元素、變量列表結尾,追加尾部逗號。有時我們在數組內以及函數調用(尤其是可變參函數)時需要傳遞大量元素,若是漏掉一個逗號,便會報錯。鑒于如上情況,尾部逗號便顯得十分有用。這個特性已經允許在數組內使用,并且從 PHP 7.2 開始,分組命名空間(Grouped Namespaces)語法也開始支持尾部逗號。

use Foo/Bar/{ Foo, Bar,$foo = [ foo , bar ,];

當新值需要被追加在此處時,尾部逗號便顯得十分實用。在可變參函數例如 unset() 內,更是如此。

unset( $foo, $bar, $baz,);

同時,當你使用 compact() 函數給模版引擎傳遞一批變量時,也是個能用到的例子。

echo $twig- render( index.html , compact( title , body , comments ,);

在某些需要構造連續或分組數據情況下,經常要使用 array_merge() 函數合并數組。也可以利用尾部逗號:

$newArray = array_merge( $arrayOne, $arrayTwo, [ foo , bar ],);

同樣,你也可以在調用任意方法、函數以及閉包時使用此特性。

class Foo public function __construct(...$args) { public function bar(...$args) { public function __invoke(...$args) {$foo = new Foo( constructor , bar ,$foo- bar( method , bar ,$foo( invoke , bar ,);
JSON_THROW_ON_ERROR

解析 JSON 響應數據,有 json_encode() 以及 json_decode() 兩個函數可供使用。不幸的是,它們都沒有恰當的錯誤拋出表現。json_encode 失敗時僅會返回 false;json_decode 失敗時則會返回 null,而 null 可作為合法的 JSON 數值。唯一獲取錯誤的方法是,調用 json_last_error() 或 json_last_error_msg(),它們將分別返回機器可讀和人類可讀的全局錯誤狀態。

該 RFC 提出的解決方案是,為 JSON 函數新增 JSON_THROW_ON_ERROR 常量用于忽略全局錯誤狀態。當錯誤發生時,JSON 函數將會拋出 JsonException 異常,異常消息(message)為 json_last_error() 的返回值,異常代碼(code)為 json_last_error_msg() 的返回值。如下是調用例子:

json_encode($data, JSON_THROW_ON_ERROR);json_decode( invalid json , null, 512, JSON_THROW_ON_ERROR);// 拋出 JsonException 異常
升級 PCRE2

PHP 使用 PCRE 作為正則表達式引擎。但從 PHP 7.3 開始,PCRE2 將作為新的正則引擎大顯身手。所以,你需要將現有的正則表達式遷移到符合 PCRE2 的規則。這些規則比以前更具侵入性。請看以下實例:

preg_match( /[/w-.]+/ , 

這個表達式在新版 PHP 內將會匹配失敗且不會觸發警告。因為 PCRE2 現嚴格要求,若需匹配連字符(-)而非用于表示范圍,則必須移動到末尾或將其轉義。

更新到 PCRE2 10.x 后,支持了以下以及更多特性:

相對后向引用 /g{+2}(等效于已存在的 /g{-2})

PCRE2 版本檢查 (?(VERSION =x)...)

(*NOTEMPTY) 和 (*NOTEMPTY_ATSTART) 告知引擎勿返回空匹配

(*NO_JIT) 禁用 JIT 優化

(*LIMIT_HEAP=d) 限制堆大小為 d KB

(*LIMIT_DEPTH=d) 設置回溯深度限制為 d

(*LIMIT_MATCH=d) 設置匹配數量限制為 d

譯者注:國內正則術語參差不一,「后向引用」—— Back References,又稱「反向引用」、「回溯引用」等,此處參考 PHP 官方手冊的中文譯本。list() 賦值引用

PHP 中的 list() 現在可以賦值給引用,在當前版本中 list() 中賦值不能使用引用,在 PHP 7.3 中將允許使用引用,新改進的語法如下:

$array = [1, 2];list($a, $b) = $array;

相當于

$array = [1, 2];$a = $array[0];$b = $array[1];

在 PHP 7.3 的變更中,我們還可以與 foreach() 方法一起嵌套使用

$array = [[1, 2], [3, 4]];foreach ($array as list( $a, $b)) { $a = 7;var_dump($array);
is_countable 函數

在 PHP 7.2 中,用 count() 獲取對象和數組的數量。如果對象不可數,PHP 會拋出警告?? 。所以需要檢查對象或者數組是否可數。 PHP 7.3 提供新的函數 is_countable() 來解決這個問題。

該 RFC 提供新的函數 is_countable(),對數組類型或者實現了 Countable 接口的實例的變量返回 true 。

之前:

if (is_array($foo) || $foo instanceof Countable) { // $foo 是可數的}

之后:

if (is_countable($foo)) { // $foo 是可數的}
array_key_first(), array_key_last()

當前版本的 PHP 允許使用 reset() ,end() 和 key() 等方法,通過改變數組的內部指針來獲取數組首尾的鍵和值?,F在,為了避免這種內部干擾,PHP 7.3 推出了新的函數來解決這個問題:

$key = array_key_first($array); 獲取數組第一個元素的鍵名

$key = array_key_last($array); 獲取數組最后一個元素的鍵名

讓我們看一個例子:

// 關聯數組的用法$array = [ a = 1, b = 2, c = $firstKey = array_key_first($array);$lastKey = array_key_last($array);assert($firstKey === a assert($lastKey === c // 索引數組的用法$array = [1 = a , 2 = b , 3 = c $firstKey = array_key_first($array);$lastKey = array_key_last($array);assert($firstKey === 1);assert($lastKey === 3);
譯者注:array_value_first() 和 array_value_last() 并沒有通過 RFC 表決;因此 PHP 7.3 內僅提供了 array_key_first() 以及 array_key_last() 函數。
參考鏈接:http://wiki.php.net/rfc/arra...Argon2 和 Hash 密碼加密性能增強

在PHP的早期版本中,我們增加了Argon2和哈希密碼加密算法,這是一種使用哈希加密算法來保護密碼的現代算法。它有三種不同的類型,Argon2i,Argon2d和Argon 2id。 我們針對Argon2i密碼散列和基于密碼的密鑰生成進行了優化。 Argon2d性能更快,并使用依賴于內存的數據訪問。 Argon2i使用與內存無關的數據訪問。 Argon2id是Argon2i和Argon2d的混合體,使用依賴于數據和與數據獨立的存儲器訪問的組合。

password_hash():

Argon2id現在是在paswword_ *函數中使用的推薦的Argon2變量。

具有自定義成員方法的名稱的Argon2id與PASSWORD_ARGON2I的使用方法相同password_hash( password ,PASSWORD_ARGON2ID,[ memory_cost = 1 17, time_cost = 4, threads = 2]);

password_verify();

除了Argon2i之外,password_verify()函數也適用于Argon2id。

password_needs_rehash();

此函數也將接受Argon2id哈希值,如果任何變量成員發生變化,則返回true。

$hash = password_hash( password , PASSWORD_ARGON2ID);password_needs_rehash($hash, PASSWORD_ARGON2ID); // 返回假password_needs_rehash($hash, PASSWORD_ARGON2ID, [ memory_cost = 1 17]); // 返回真
廢棄并移除 image2wbmp()

該函數能夠將圖像輸出為 WBMP 格式。另一個名為 imagewbmp() 的函數也同樣具備單色轉換的作用。因此,出于重復原因,image2wbmp() 現已被廢棄,你可使用 imagewbmp() 代替它。此函數被棄用后,再次調用它將會觸發已棄用警告。待后續此函數被移除后,再次調用它將會觸發致命錯誤。

廢棄并移除大小寫不敏感的常量

使用先前版本的 PHP,你可以同時使用大小寫敏感和大小寫不敏感的常量。但大小寫不敏感的常量會在使用中造成一點麻煩。所以,為了解決這個問題,PHP 7.3 廢棄了大小寫不敏感的常量。

原先的情況是:

類常量始終為「大小寫敏感」。

使用 const 關鍵字定義的全局常量始終為「大小寫敏感」。注意此處僅僅是常量自身的名稱,不包含命名空間名的部分,PHP 的命名空間始終為「大小寫不敏感」。

使用 define() 函數定義的常量默認為「大小寫敏感」。

使用 define() 函數并將第三個參數設為 true 定義的常量為「大小寫不敏感」。

如今 PHP 7.3 提議廢棄并移除以下用法:

In PHP 7.3: 廢棄使用 true 作為 define() 的第三個參數。

In PHP 7.3: 廢棄使用與定義時的大小寫不一致的名稱,訪問大小寫不敏感的常量。true、false 以及 null 除外。

同站點 Cookie

PHP 7.3 在建議在使用 cookies 時,增加同站點標志。這個 RFC 會影響4個系統函數。

setcookie

setrawcookie

session_set_cookie_params

session_get_cookie_params

這個影響會在兩種情況下起作用。其中一種方式會添加函數的新參數
,另一種方式允許以數組形式的選項代替其他單獨選項。

bool setcookie( string $name [, string $value =  [, int $expire = 0 [, string $path =  [, string $domain =  [, bool $secure = false [, bool $httponly = false ]]]]]]bool setcookie ( string $name [, string $value =  [, int $expire = 0 [, array $options ]]]// 兩種方式均可.
FPM 更新

FastCGI 進程管理器也進行了更新,現在提供了新的方式來記錄 FPM 日志。

log_limit: 設置允許的日志長度,可以超過 1024 字符。

log_buffering: 允許不需要額外緩沖去操作日志。

decorate _workers_output: 當啟用了 catch_workers_output 時,系統會去禁用渲染輸出。

改進 Windows 下的文件刪除

如官方文檔所述:

默認情況下,文件描述符以共享讀、寫、刪除的方式去操作。 這很有效的去映射 POSIX 并允許去刪除正在使用中的文件。但這并不是100%都是一樣的,不同的平臺可能仍存在一些差異。刪除操作之后,文件目錄仍存在直到所有的文件操作被關閉。

以上就是PHP 7.3更新內容的詳細介紹的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品中文字幕在线| 欧美激情中文字幕乱码免费| 在线日韩第一页| 日韩高清av在线| 国产日韩在线精品av| 国产亚洲精品一区二区| 日韩av不卡电影| 97久久精品国产| 久久久久久久久国产| 久久亚洲电影天堂| 国产精品自产拍高潮在线观看| 欧美成人剧情片在线观看| 亚洲一区av在线播放| 欧美大片免费观看| 国产成人av在线| 日产精品99久久久久久| 亚洲精品美女久久| 国产精品自拍小视频| 人人做人人澡人人爽欧美| 国产综合色香蕉精品| 久久久噜噜噜久久中文字免| 欧美孕妇性xx| 欧美国产日韩在线| 日韩精品视频中文在线观看| 久久久国产一区二区三区| 日韩欧美aⅴ综合网站发布| 国产成人福利网站| 91精品国产自产在线| 亚洲高清免费观看高清完整版| 91国内免费在线视频| 亚洲视频网站在线观看| 在线视频一区二区| 日韩av网址在线| 91av视频在线免费观看| 亚洲综合最新在线| 亚洲成年人影院在线| 欧美国产乱视频| 日韩在线一区二区三区免费视频| 精品国产乱码久久久久久婷婷| 一本色道久久88亚洲综合88| 88国产精品欧美一区二区三区| 久久久91精品国产一区不卡| 日韩免费观看在线观看| 精品露脸国产偷人在视频| 91chinesevideo永久地址| 亚洲国产精久久久久久久| 在线观看国产欧美| 91久久精品在线| 性日韩欧美在线视频| 日韩美女在线看| 久久久国产精品免费| 亚洲激情电影中文字幕| 成人www视频在线观看| 91国产中文字幕| 国产69精品99久久久久久宅男| 国产精品视频精品视频| 国产中文日韩欧美| 精品视频在线播放色网色视频| 欧美与黑人午夜性猛交久久久| 亚洲美腿欧美激情另类| 自拍偷拍免费精品| 俺去了亚洲欧美日韩| 国产成人精彩在线视频九色| 欧美怡春院一区二区三区| 国语自产精品视频在线看| 亚洲综合精品伊人久久| 中文字幕日韩电影| 成人激情在线观看| 亚洲精品中文字幕有码专区| 亚洲精品午夜精品| 久久影视电视剧免费网站清宫辞电视| 91久久精品国产91久久性色| 国产婷婷97碰碰久久人人蜜臀| 亚洲天天在线日亚洲洲精| 色悠悠国产精品| 国产成人精品在线观看| 国产欧美精品一区二区三区-老狼| 久久亚洲综合国产精品99麻豆精品福利| 日韩网站免费观看| 国产成人+综合亚洲+天堂| 欧美男插女视频| 亚洲国产欧美日韩精品| 91免费版网站入口| 日韩www在线| 日韩欧美视频一区二区三区| 国产亚洲精品久久久优势| 亚洲第一偷拍网| 国产99久久精品一区二区| 亚洲欧洲一区二区三区在线观看| 91精品国产高清久久久久久| 欧美一级大片视频| 日韩中文在线中文网在线观看| 欧美电影电视剧在线观看| 成人在线视频福利| 亚洲福利影片在线| 国产精品一区二区三区毛片淫片| 92国产精品视频| 国产激情久久久| 久久九九热免费视频| 操人视频在线观看欧美| 欧美极品少妇与黑人| 美女国内精品自产拍在线播放| 欧美在线视频播放| 国产精品丝袜高跟| 国产精品人成电影在线观看| 91高清视频免费观看| 国内精品久久久| 亚洲第一男人天堂| 日本国产高清不卡| 欧美日韩国产一中文字不卡| 2019亚洲男人天堂| 欧美一区二区三区免费视| 97久久伊人激情网| 久久香蕉国产线看观看av| 亚洲电影在线看| 国产免费一区二区三区在线能观看| 久久久视频精品| 日产精品久久久一区二区福利| 欧美中文字幕在线视频| 国产精品啪视频| 日韩av网址在线观看| 欧美国产日产韩国视频| 欧美日韩亚洲一区二区三区| 国产精品美女久久| 国产精品27p| 亚洲福利视频网站| 91在线免费看网站| 亚洲国产成人av在线| 国产欧美一区二区三区久久人妖| 另类色图亚洲色图| 中文字幕久热精品在线视频| 欧洲成人性视频| 欧美综合国产精品久久丁香| 91经典在线视频| 成人网址在线观看| 欧美成人精品激情在线观看| 国产一区二区成人| 日韩av最新在线观看| 亚洲激情 国产| 福利微拍一区二区| 成人激情黄色网| 日韩av不卡电影| 亚洲最新在线视频| 欧美性色xo影院| 日韩av中文在线| 日韩国产精品亚洲а∨天堂免| 日韩经典第一页| 日韩欧美视频一区二区三区| 在线免费观看羞羞视频一区二区| 日韩电影大片中文字幕| 欧美精品激情视频| 国产精品视频大全| 91在线视频免费| 欧美精品免费在线观看| 日韩av资源在线播放| 性色av一区二区三区| 国产精品免费小视频| 羞羞色国产精品| 亚洲专区中文字幕| 国产精品第七十二页| 国产精品久久久久久久久久久新郎| 亚洲自拍另类欧美丝袜| 91av在线免费观看| 91精品国产自产在线老师啪|