更新時(shí)間:2018-03-29 來源:黑馬程序員 瀏覽量:
我們知道php被稱為“世界最好的語言“,我也是其中一位開發(fā)者,自從php7.2發(fā)布以來,我更加喜歡這門語言。讓我們看最新版本給我們帶來哪些精彩。
最重要的安全
7.2版本提供了一些非常必要的安全性改進(jìn)。
停止使用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算法解決了我個(gè)人的現(xiàn)有算法的缺點(diǎn),在他們設(shè)計(jì)的最高內(nèi)存填充率。
libsodium庫現(xiàn)在正式作為PHP核心的擴(kuò)展。我一直在等待這樣的一段時(shí)間了。
Mcrypt被取消
mcrypt密碼庫擴(kuò)展已正式取消。PHP的開發(fā)小組說,mcrypt大大抑制PHP語言的發(fā)展,越來越像“老軟件?!?/p>
對SSL / TLS(安全套接字層/傳輸層安全)常數(shù)進(jìn)行了改進(jìn)。
改進(jìn)的語言特性
還有其他的更新,用來幫助解決一些開發(fā)者關(guān)于PHP語言的改進(jìn)和建議。我們一起來看看。
PHP7.2在調(diào)用count()函數(shù)時(shí),它接收一個(gè)參數(shù)為一個(gè)標(biāo)量函數(shù),如果參數(shù)為空,或者一個(gè)對象,將返回未實(shí)現(xiàn)接口的警告信息。
關(guān)于對象類型聲明修復(fù)的情況,以前開發(fā)者不能聲明一個(gè)函數(shù)需要傳遞一個(gè)對象作為參數(shù)或聲明一個(gè)函數(shù)應(yīng)該返回一個(gè)對象。PHP7.2可以使用object作為一個(gè)參數(shù)類型和返回類型聲明。
hashcontext對象將哈希擴(kuò)展使用對象,而不是使用資源。
在使用對象/數(shù)組模型解決了與Zend引擎數(shù)字key轉(zhuǎn)換的問題。
在以前的開發(fā)實(shí)例中,哈希數(shù)組的Key可以包含數(shù)字和字符串,而對象哈希表是整數(shù)的索引。在這種情況下,導(dǎo)致PHP代碼找不到key。
PHP 7.2對此作了修復(fù),數(shù)組或?qū)ο蠊1淼膋ey會自動轉(zhuǎn)換為適當(dāng)?shù)念愋停詳?shù)字字符串屬性名對象會成為整數(shù)數(shù)組中的key,反之亦然,解決了無法訪問的性能問題。
本文版權(quán)歸黑馬程序員PHP學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:黑馬程序員PHP培訓(xùn)學(xué)院
首發(fā):http://php.itheima.com/