分析PHP中單雙引號(hào)的誤區(qū)和雙引號(hào)小隱患
許多程序員以為在PHP中單引號(hào)和雙引號(hào)是一樣的,其實(shí)這要看怎么用法,在有些方面它們確實(shí)是一樣,但有一些方面它們也有著很大的區(qū)別,今天小編就來(lái)為您說(shuō)說(shuō)有哪些區(qū)別。
1、一般情況下兩者是通用的.但如果雙引號(hào)內(nèi)寫(xiě)的是變量就會(huì)執(zhí)行解析操作,而單引號(hào)則不解析,這個(gè)怎么說(shuō)?還是舉個(gè)例子吧。
這下看明白了吧!
2、執(zhí)行效率不一樣,單引號(hào)的執(zhí)行速度要比雙引號(hào)的執(zhí)行速度快,如果是一樣大型的程序,這方面還是要注意優(yōu)化的,畢竟PHP屬于解釋型語(yǔ)言。所以如果內(nèi)部只有純字符串的時(shí)候,用單引號(hào)(速度快),內(nèi)部有別的東西(如變量)的時(shí)候,用雙號(hào)引會(huì)更靈活些。
PHP雙引號(hào)小隱患
PHP很多語(yǔ)法特性會(huì)讓攻擊者有機(jī)可乘,例如PHP會(huì)檢測(cè)雙引號(hào)中的變量。
執(zhí)行如下代碼:
function test() { echo "abc"; } echo "${@test()}"; //或者 echo ${@phpinfo()};
原理如下:
$a = 'b'; $b = 'a'; echo $$a; //a
以上就利用了PHP可變變量,雙引號(hào){}可解析雙引號(hào)內(nèi)的變量?jī)?nèi)容特性制造出來(lái)的小麻煩。 大家看懂了嗎?這些誤區(qū)和小隱患程序員們?cè)谄綍r(shí)要多多注意了。
相關(guān)文章
php表單請(qǐng)求獲得數(shù)據(jù)求和示例
這篇文章主要介紹了php表單請(qǐng)求獲得數(shù)據(jù)求和實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-05-05PHP實(shí)現(xiàn)根據(jù)瀏覽器跳轉(zhuǎn)不同語(yǔ)言頁(yè)面代碼
以下是對(duì)使用PHP實(shí)現(xiàn)根據(jù)瀏覽器跳轉(zhuǎn)不同語(yǔ)言頁(yè)面的代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下2013-08-08php編譯安裝php-amq擴(kuò)展簡(jiǎn)明教程
這篇文章主要介紹了php編譯安裝php-amq擴(kuò)展的方法,較為詳細(xì)的分析了php-amq擴(kuò)展的功能及下載、編譯安裝的具體步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-06-06mac系統(tǒng)下為 php 添加 pcntl 擴(kuò)展
pcntl中php實(shí)現(xiàn)多進(jìn)程必須要安裝的擴(kuò)展,本文給大家簡(jiǎn)單介紹下如何在mac系統(tǒng)中為 php 添加 pcntl 擴(kuò)展2016-08-08php實(shí)現(xiàn)快速排序法函數(shù)代碼
取一個(gè)值與其他值進(jìn)行比較,小的放在這個(gè)值的左邊,大的放在這個(gè)值的右邊,然后按照這個(gè)方式遞歸2012-08-08PHP實(shí)現(xiàn)將textarea的值根據(jù)回車(chē)換行拆分至數(shù)組
這篇文章主要介紹了PHP實(shí)現(xiàn)將textarea的值根據(jù)回車(chē)換行拆分至數(shù)組,涉及表單元素及explode拆分字符串的相關(guān)技巧,需要的朋友可以參考下2015-06-06