php快废了,PHP为什么要逐渐废弃一些函数?出于什么原因呢?
1.比如說廢棄mysql開頭的幾個數(shù)據(jù)庫函數(shù),是為了面向?qū)ο蠖鴱U棄的么?
2.還有magic_quotes這個為什么又要去掉呢?
3.等等。。
知道的說一下,感激不盡。
回復(fù)內(nèi)容:
1.比如說廢棄mysql開頭的幾個數(shù)據(jù)庫函數(shù),是為了面向?qū)ο蠖鴱U棄的么?
2.還有magic_quotes這個為什么又要去掉呢?
3.等等。。
知道的說一下,感激不盡。
首先,
我們講講mysql_xxx開頭的函數(shù)為何被不建議使用,
在零幾年的時候, 層主剛學(xué)PHP時, 書上都是寫的這個啊,
然后各種PHP產(chǎn)出的項目, model都是寫的
PHP$this->db->query('SELECT * FROM XXX WHERE ID='.$id);
這樣就導(dǎo)致了SQL注入的危險.
然后各種五花八門的escape_string()、addslashes()函數(shù)就產(chǎn)生了,
但萬能的黑闊們還是可以用各種0x00構(gòu)造的字符串繞過.
PHP官方被逼急了,
就推出了PDO、MySQLi,
然后各種好看一點(diǎn)的代碼才出來了:
PHP$this->db->prepare('SELECT * FROM XXX WHERE ID=:ID');
$this->db->bindParam(array(':ID'=>$id));
$this->db->execute();
所以mysql_db_query、mysql_xxx就可以被摒棄了.
magic_quotes為何也不建議被使用了?
因為他們的存在是為了自動給輸入的參數(shù)的引號等字符打上轉(zhuǎn)義符\,
有可能你覺得這樣不是更安全嗎?
但是你想過代碼的可移植性嗎?接口取輸入數(shù)據(jù)時怎么和客戶端輸入的不一樣時多無奈?
所以, 自從PDO、MySQLi出來后, magic_quotes就沒有存在的必要了.
語言是不斷發(fā)展的,這就意味著有的函數(shù)需要被開發(fā),有的函數(shù)被證明是垃圾,所以當(dāng)然要去掉,省得別人不小心取用造成麻煩
廢除說不上吧,只是有新的出來推薦使用罷了
優(yōu)勝劣汰
當(dāng)然,不能可以立馬廢除,畢竟要考慮向下兼容和照顧老用戶嘛。你看XP、IE6這些典型代表的生命周期。不過,php中的語言特性的淘汰不會那么慢,也不會很快。
相關(guān)標(biāo)簽:php
本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請注明出處,感謝您的尊重!
總結(jié)
以上是生活随笔為你收集整理的php快废了,PHP为什么要逐渐废弃一些函数?出于什么原因呢?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3ide手机端怎么样_各大P
- 下一篇: vs中工具箱代表的意思_“日”除了代表太