php中單引號與雙引號的區別

2022-07-22 06:57:15 字數 3161 閱讀 2617

舉例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'];

echo "this is your email $email"; //

雙引號伺服器會自動解析

echo 'this is your email'.$email; //

用連字元和純字串和變數鏈結起來

常見的用途是建立大塊的html字串**,賦值號 (=) 連線符 (.) 可以被簡寫合併為 (.=) 符,ecshop中有如下例子

$sql .= "and g.cat_id " . db_create_in($id_list);

舉例3      sql語句的寫法

selece *

from email_table where username="abc";

查詢的條件是常量時,php中可以寫成

$query="selece *

from email_table where username=

'abc

'";//query語句一定要用雙引號括起來

查詢的條件是變數時,如$abc=$_post['username'];php中可以寫成

$query="select

*from email_table where username=

'".$abc."

' ";

可以分成幾步理解:

①"select * from email_table where  username=' " 純字串

② .連線符,用來鏈結後面的字元

③$abc 顯示變數的值

④." ' "連字元鏈結後面的單引號(為了與條件中的第乙個單引號配對)

其實不必這麼複雜,可以這麼寫

$query="select

*from email_table where username=

'$abc

' ";

可以這麼理解,雙引號內部的全都要被伺服器解析,單引號只是當成普通字元而已,而$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 = "select

a.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 為非法的字串定義。定義字串時,只有一種引號被視...