更新時間:2018年03月27日15時20分 來源:傳智播客 瀏覽次數(shù):
我們知道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)有算法的缺點,在他們設(shè)計的最高內(nèi)存填充率。
libsodium庫現(xiàn)在正式作為PHP核心的擴展。我一直在等待這樣的一段時間了。
Mcrypt被取消
mcrypt密碼庫擴展已正式取消。PHP的開發(fā)小組說,mcrypt大大抑制PHP語言的發(fā)展,越來越像“老軟件。”
對SSL / TLS(安全套接字層/傳輸層安全)常數(shù)進行了改進。
改進的語言特性
還有其他的更新,用來幫助解決一些開發(fā)者關(guān)于PHP語言的改進和建議。我們一起來看看。
PHP7.2在調(diào)用count()函數(shù)時,它接收一個參數(shù)為一個標量函數(shù),如果參數(shù)為空,或者一個對象,將返回未實現(xiàn)接口的警告信息。
關(guā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,反之亦然,解決了無法訪問的性能問題。
本文版權(quán)歸傳智播客PHP學院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:傳智播客PHP培訓學院
首發(fā):http://php.itcast.cn/