首頁技術文章正文

一文講解PHP7.2版本新特性

更新時間:2018-03-29 來源:黑馬程序員 瀏覽量:

我們知道php被稱為“世界最好的語言“,我也是其中一位開發(fā)者,自從php7.2發(fā)布以來,我更加喜歡這門語言。讓我們看最新版本給我們帶來哪些精彩。

最重要的安全

7.2版本提供了一些非常必要的安全性改進。

停止使用sha1() or md5(),請使用:

password_hash('password', PASSWORD_ARGON2I)

使用argon2i算法還支持自定義模式:

$options = [

'memory_cost' => PASSWORD_ARGON2_DEFAULT_MEMORY_COST,

'time_cost' => PASSWORD_ARGON2_DEFAULT_TIME_COST,

'threads' => PASSWORD_ARGON2_DEFAULT_THREADS,

];

password_hash('password', PASSWORD_ARGON2I, $options);

argon2算法解決了我個人的現(xiàn)有算法的缺點,在他們設計的最高內(nèi)存填充率。

libsodium庫現(xiàn)在正式作為PHP核心的擴展。我一直在等待這樣的一段時間了。

Mcrypt被取消

mcrypt密碼庫擴展已正式取消。PHP的開發(fā)小組說,mcrypt大大抑制PHP語言的發(fā)展,越來越像“老軟件?!?/p>

對SSL / TLS(安全套接字層/傳輸層安全)常數(shù)進行了改進。

改進的語言特性

還有其他的更新,用來幫助解決一些開發(fā)者關于PHP語言的改進和建議。我們一起來看看。

PHP7.2在調(diào)用count()函數(shù)時,它接收一個參數(shù)為一個標量函數(shù),如果參數(shù)為空,或者一個對象,將返回未實現(xiàn)接口的警告信息。

關于對象類型聲明修復的情況,以前開發(fā)者不能聲明一個函數(shù)需要傳遞一個對象作為參數(shù)或聲明一個函數(shù)應該返回一個對象。PHP7.2可以使用object作為一個參數(shù)類型和返回類型聲明。

hashcontext對象將哈希擴展使用對象,而不是使用資源。

在使用對象/數(shù)組模型解決了與Zend引擎數(shù)字key轉(zhuǎn)換的問題。

在以前的開發(fā)實例中,哈希數(shù)組的Key可以包含數(shù)字和字符串,而對象哈希表是整數(shù)的索引。在這種情況下,導致PHP代碼找不到key。

PHP 7.2對此作了修復,數(shù)組或?qū)ο蠊1淼膋ey會自動轉(zhuǎn)換為適當?shù)念愋?,所以?shù)字字符串屬性名對象會成為整數(shù)數(shù)組中的key,反之亦然,解決了無法訪問的性能問題。

本文版權歸黑馬程序員PHP學院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!

作者:黑馬程序員PHP培訓學院

首發(fā):http://php.itheima.com/

分享到:
在線咨詢 我要報名
和我們在線交談!