舉例1 單引號無法處理變數
<?php以上程式輸出結果為header('content-type:text/html;charset=utf-8'); //設定頁面編碼
$content = "hello php";
echo "$content";
echo "
";
echo '
';
echo '$content';
echo '
';
echo "what's my name?
"; //
最簡單的寫法,單引號和雙引號不產生衝突(conflict)
echo 'what\' my name?
'; //
用斜槓轉義
echo 'what\ts my name?
'; //
無法處理轉義字元,原樣輸出
echo "我\"是\\'中國人";//
關於轉義字元,多說一句 比如我們想輸出: 我"是\'中國人
?>
結論1:php裡的單引號把內容當成純文字,不會經過伺服器翻譯,php會在雙引號包圍的字串中搜尋變數。用單引號代替雙引號來包含字串內容,這樣做會更快一些。
另外 echo 「
」; echo 『
』; 效果相同
結論2:php中單引號不能處理轉義字元(除了\\和\'這兩個)以外,\n也不行。
舉例2 如何輸出含有變數的字串
現在要輸出this is your email $email; 可以有兩種方式
$email=$_post['email'];常見的用途是建立大塊的html字串**,賦值號 (=) 連線符 (.) 可以被簡寫合併為 (.=) 符,ecshop中有如下例子echo "this is your email $email"; //
雙引號伺服器會自動解析
echo 'this is your email'.$email; //
用連字元和純字串和變數鏈結起來
$sql .= "and g.cat_id " . db_create_in($id_list);
舉例3 sql語句的寫法
selece *查詢的條件是常量時,php中可以寫成from email_table where username="abc";
$query="selece *查詢的條件是變數時,如$abc=$_post['username'];php中可以寫成from email_table where username=
'abc
'";//query語句一定要用雙引號括起來
$query="select可以分成幾步理解:*from email_table where username=
'".$abc."
' ";
①"select * from email_table where username=' " 純字串
② .連線符,用來鏈結後面的字元
③$abc 顯示變數的值
④." ' "連字元鏈結後面的單引號(為了與條件中的第乙個單引號配對)
其實不必這麼複雜,可以這麼寫
$query="select可以這麼理解,雙引號內部的全都要被伺服器解析,單引號只是當成普通字元而已,而$abc會被當作變數解析。*from email_table where username=
'$abc
' ";
如果複雜一點,$abc為陣列變數,則寫成
$abc=array("name"=>$_post[這樣的寫法可以按之前的那④個步驟就很容易理解了。'username'
],"age"=>$_post[
'age']);
$query
="select
*from email_table where username=
'" .$abc["name"]."
' ";
以下是從ecshop的flow.php檔案中copy出來的麼幾個sql語句,可以看看寫法。
$sql = "selecta.attr_id, a.attr_name, a.attr_type, ".
"g.goods_attr_id, g.attr_value, g.attr_price " .
'from
' . $globals[
'ecs'
]->
table('
goods_attr
') . '
as g '.
'left join
' . $globals[
'ecs'
]->
table('
attribute
') . '
as a on a.attr_id = g.attr_id '.
"where a.attr_type !=
0and g.goods_id =
'" . $goods->goods_id . "
'" .
'order by a.sort_order, g.attr_price, g.goods_attr_id';
/*檢查是否有贈品
*/$sql
= "select
count(*) from " . $ecs->
table('
cart
') . " where session_id =
'" . sess_id . "
'and is_gift >
0";
PHP中單引號與雙引號的區別
雙引號裡面的字段會經過編譯器解釋,然後再當作html 輸出。單引號裡面的不進行解釋,直接輸出。從字面意思上就可以看出,單引號比雙引號要快了。php中,雙引號中的變數 var 和特殊字元 r n之類 會被轉義,單引號中的內容不會被轉義 所以效率更高 word hello hello word worl...
php中雙引號與單引號的區別
主要區別 雙引號的情況下,php要搜尋可能存在的變數,然後替換為變數值 單引號情況下,直接原樣輸出 boo 7 echo 等於 boo這個值 這裡邊的變數是 boo,但是php搜尋的變數是 boo這個值,自然而然,沒有這個變數會報錯 boo 7 echo 等於 boo,這個值 這個搜尋的就是變數 b...
PHP 單引號與雙引號的區別
看好多 有時候用單引號或雙引號實現包含字串的內容,其實簡單個概括下雙引號中的變數可以解析,單引號就是絕對的字串。1 定義字串 在php中,字串的定義可以使用單引號,也可以使用雙引號。但是必須使用同一種單或雙引號來定義字串,如 hello 和 hello 為非法的字串定義。定義字串時,只有一種引號被視...