在程序語言中,無論是單引號還是雙引號,都有很重要的作用,在PHP語言中也一樣。跟ASP相比,PHP的引號更好用,在ASP中,要把數據代入變量就必須用雙引號包含起來,而且裡面要用到引號的情況下只能用單引號,不能用雙引號,如果用了雙引號就會把其當作前一個引號的結束符。
但在PHP中就沒有這個限制了。代值進去變量,單引號和雙引號都可以使用, 但要成對使用。
在PHP中,如果只是用於沒有包含變量的文本型數據,單引號和雙引號是沒有什麼區別的。但如果要使用變量,單引號和雙引號就有區別了。
在PHP中,雙引號裡可以直接代入變量,而無需轉定義或者其他符號,
如:
- $b = “cat”;$a = “This is a $b”;//顯示This is a cat
單引號則不行,如果
- $a = ‘This is a $b’;//則顯示為:This is a $b。
在運行效率上單引號和雙引號也是有區別的,一般來說單引號的運行速度會比較快,雙引號會比較慢,原因在於雙引號要先查找語句中是否有變量,而單引號則不用,因此,如果語句中沒有代入變量盡量采用單引號。這是寫程序一種習慣,時刻想著提高程序的效率。
如果在語句中要轉定義操作,那麼就一定要用雙引號了。
比如,轉定義單引號時,寫成這樣的話:
- $a = ‘He’s name is Tom.’ ;
程序會把He’s name is Tom.原封不動的顯示出來,如果這樣寫:
- $a = “He’s name is Tom.”;
程序就會顯示:He’s name is Tom.
單引號是sql語句的絆腳石,在sql語句中的文本型數據都要用單引號來包含,因此數據中如果出現單引號,數據庫會認為數據結束,那麼後面的數據就會被認為是sql語句的其它組成部分,在數據庫查詢時當然會報錯,所以寫進sql語句的文本型數據一定要用addslashes()函數轉定義單引號,讀取數據時再用stripslashes()轉回來。