PHP 單引號 與雙引號區別

在PHP中,字符串的定義可使用單引號,也可使用雙引號。php

PHP容許咱們在雙引號串中直接包含字串變量,雙引號串中的變量將被解釋並且替換,而單引號串中的內容總被認爲是普通字符。例如: 
$foo = 2; 
echo "foo is $foo"; // 打印結果: foo is 2 
echo 'foo is $foo'; // 打印結果: foo is $foo 
echo "foo is $foo\n"; // 打印結果: foo is 2 (同時換行) 
echo 'foo is $foo\n'; // 打印結果: foo is $foo\n 
sql

 

在SQL語句中  
  
這是會常常遇到的問題,在插入數據庫的SQL語句是採用單引號來定義字符串,若是要將一個含有單引號的字符串插入數據庫,這個SQL語句就會出錯。 
如:$sql="insert into userinfo (username,password) Values('O'Kefee','123456')"    
此時,處理的方法之一是在SQL語句中加入轉義符反斜線, 
即:……Values('O\'Kefee',……    
固然也能夠使用函數 addslashes(),該函數的功能就是加入轉義符, 
即:$s = addslashes("O'Kefee") ……Values('".$s."',……    
還有一種方法是設置php.ini中的magic-quotes選項,打開該選項,則經過表單提交的信息中若是有單引號是,將會自動加上如轉義符。所以不用使用其餘函數了。 
補充: 這就要從雙引號和單引號的做用講起: 雙引號裏面的字段會通過編譯器解釋而後再看成HTML代碼輸出,可是單引號裏面的不須要解釋,直接輸出。 
數據庫

$val ='a';函數

sql =" select * from table where name like '%$val%'"; //將自動替換裏面的$val,但若是要用單引號來組織語句則表示爲:
sql =' select * from table where name like \'%'.$val.'%\''; //麻煩不少
spa

 

但用單引號代替雙引號來包含字符串,這樣作會更快一些,由於PHP會在雙引號包圍的字符串中搜尋變量,單引號則不會。字符串

相關文章
相關標籤/搜索