PHP中單引號(hào)和雙引號(hào)的區(qū)別
在程序語(yǔ)言中,無(wú)論是單引號(hào)還是雙引號(hào),都有很重要的作用,在PHP語(yǔ)言中也一樣。跟ASP相比,PHP的引號(hào)更好用,在ASP中,要把數(shù)據(jù)代入變量就必須用雙引號(hào)包含起來(lái),而且里面要用到引號(hào)的情況下只能用單引號(hào),不能用雙引號(hào),如果用了雙引號(hào)就會(huì)把其當(dāng)作前一個(gè)引號(hào)的結(jié)束符。
但在PHP中就沒(méi)有這個(gè)限制了。代值進(jìn)去變量,單引號(hào)和雙引號(hào)都可以使用, 但要成對(duì)使用。
在PHP中,如果只是用于沒(méi)有包含變量的文本型數(shù)據(jù),單引號(hào)和雙引號(hào)是沒(méi)有什么區(qū)別的。但如果要使用變量,單引號(hào)和雙引號(hào)就有區(qū)別了。
在PHP中,雙引號(hào)里可以直接代入變量,而無(wú)需轉(zhuǎn)定義或者其他符號(hào),
如:
- $b = “cat”;$a = “This is a $b”;//顯示This is a cat
單引號(hào)則不行,如果
- $a = ‘This is a $b’;//則顯示為:This is a $b。
在運(yùn)行效率上單引號(hào)和雙引號(hào)也是有區(qū)別的,一般來(lái)說(shuō)單引號(hào)的運(yùn)行速度會(huì)比較快,雙引號(hào)會(huì)比較慢,原因在于雙引號(hào)要先查找語(yǔ)句中是否有變量,而單引號(hào)則不用,因此,如果語(yǔ)句中沒(méi)有代入變量盡量采用單引號(hào)。這是寫程序一種習(xí)慣,時(shí)刻想著提高程序的效率。
如果在語(yǔ)句中要轉(zhuǎn)定義操作,那么就一定要用雙引號(hào)了。
比如,轉(zhuǎn)定義單引號(hào)時(shí),寫成這樣的話:
- $a = ‘He\’s name is Tom.’ ;
程序會(huì)把He\’s name is Tom.原封不動(dòng)的顯示出來(lái),如果這樣寫:
- $a = “He\’s name is Tom.”;
程序就會(huì)顯示:He’s name is Tom.
單引號(hào)是sql語(yǔ)句的絆腳石,在sql語(yǔ)句中的文本型數(shù)據(jù)都要用單引號(hào)來(lái)包含,因此數(shù)據(jù)中如果出現(xiàn)單引號(hào),數(shù)據(jù)庫(kù)會(huì)認(rèn)為數(shù)據(jù)結(jié)束,那么后面的數(shù)據(jù)就會(huì)被認(rèn)為是sql語(yǔ)句的其它組成部分,在數(shù)據(jù)庫(kù)查詢時(shí)當(dāng)然會(huì)報(bào)錯(cuò),所以寫進(jìn)sql語(yǔ)句的文本型數(shù)據(jù)一定要用addslashes()函數(shù)轉(zhuǎn)定義單引號(hào),讀取數(shù)據(jù)時(shí)再用stripslashes()轉(zhuǎn)回來(lái)。
【編輯推薦】