” ” 雙引號裡面的字段會經過編譯器解釋,然後再當作HTML代碼輸出。
‘ ‘ 單引號裡面的不進行解釋,直接輸出。
從字面意思上就可以看出,單引號比雙引號要快了。
例如:
$abc=’my name is tome’;
echo $abc //結果是:my name is tom
echo ‘$abc’ //結果是
abc
echo “$abc” //結果是:my name is tom
特別在使用MYSQL語句的時候,雙引號和單引號的用法讓新手不知所措,在這裡,舉個例子,來進行說明。
假設查詢條件中使用的是常量,例如:
select * from abc_table where user_name=’abc’;
SQL語句可以寫成:
SQLstr = “select * from abc_table where user _name= ‘abc’” ;
假設查詢條件中使用的是變量,例如:
$user_name = $_REQUEST['user_name']; //字符串變量
或
$user=array (”name”=> $_REQUEST['user_name‘,"age"=>$_REQUEST['age'];//數組變量
SQL語句就可以寫成:
SQLstr = “select * from abc_table where user_name = ‘ ” . $user_name . ” ‘ “;
SQLstr = “select * from abc_table where user_name = ‘ ” . $user["name"] . ” ‘ “;
對比一下:
SQLstr=”select * from abc_table where user_name = ‘ abc ‘ ” ;
SQLstr=”select * from abc_table where user_name =’ ” . $user _name . ” ‘ “;
SQLstr=”select * from abc_table where user_name =’ ” . $user["name"] . ” ‘ “;
SQLstr可以分解為以下3個部分:
1:”select * from table where user_name = ‘ ” //固定SQL語句
2:$user //變量
3:” ‘ ”
1,2,3部分字符串之間用”.” 來連接
====
一.首先想想PHP裡所有的單詞(其實應該叫符號)有幾類.
1.PHP,mysql兩方的關鍵詞與函數.例如echo,print,mysql_connect等等.這些肯定不加引號的.
2.常量.新手可能用得不多,常量的好處是全局性,穿透函數.速度也快些不過新手可以暫時不管常量這玩意兒.
3.變量.前面帶"$"號的就是變量.可以為變量設一個"值",例如一串字符,一個數字,邏輯(真/假)值等.也可以表示一組值(數組,對象等)
4.值.通常要給常量與變量設置值.賦值語句$a='abc'中,右邊的'abc'即為值.
5.函數的參數(在括號裡的).可以是常量,變量,值三種.
變量(常量)與值的關系正如下列各種情況.
"顏色"與"紅",
"長度"與100,
"日期"與2007年10月25號"
二.什麼情況下用PHP引號
其實只有第4項"值"需要用到引號,函數的裡也只有值要用引號.並且只有字符串(日期值可以當成字符串)內容需要用到引號.數字(可用可不用),真假(不能用)例外.
例子
三.單引號與雙引號的區別
一般情況下兩者是通用的.但雙引號內部變量會解析,單引號則不解析.
例子
所以如果內部只有純字符串的時候,用單引號(速度快),內部有別的東西(如變量)的時候,用雙號引更好點.
四.字符串內部如果出現PHP引號怎麼辦--關於轉義.
比如我們想輸出: 我"是'天才
這時候就必須用到轉義了.轉義即把本來有作用的符號轉成無意義的字符.
這樣就正常了,因為號把它後面的任何字符都轉成無意義的符號.在這裡來說,PHP解析器根本沒把號後面的引號當成引號來看待.
同樣的,還可以轉義分號,$符號等特殊符號.
五.字符串的連接.
這是個麻煩的問題.一般來說,變量值,直接包含在雙引號中就可以了.另外字符串的疊加用"."字符.
在復雜的情況裡可以用大括號來包含,PHP便知道這是一個完整的東西,裡面的引號不會影響到外面的引號關系.
與html的混合也很簡單,最好養成HTML中全部用雙引號,PHP中盡量用單引號的習慣.這樣方便把大段的HTML代碼復制過來,只要頭尾加上單引號就是一個正確的字符串了.幾百行的HTML代碼也不用擔心PHP引號錯亂.
總結一下PHP引號使用原則
1.字符串的值用引號
2.PHP中盡量用單引號,HTML代碼全部用雙引號
3.在包含變量的時候,用雙引號可以簡化操作
4.復雜的情況下用大括號包起來