再談PHP單引號和雙引號區別

關於單引號和雙引號的區別和效率問題。很多朋友瞭解的不是很清楚,一直以爲PHP中單引號和雙引號是互通的,直到有一天,發現單引號和雙引號出現錯誤的時候纔去學習研究。所以今天再拿出來談談他們的區別,希望大家不要再爲此困惑。
” ” 雙引號裏面的字段會經過編譯器解釋,然後再當作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部分字符串之間用”.” 來連接
[p=30, 2, left]
[/p]
 
 
====
一.首先想想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.複雜的情況下用大括號包起來
PHP引號還有一個用處就是,有的時候需要用php生成文本文件,換行符\n需要用雙引號才能好使,單引號則會直接把\n當成字符輸出
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章