2014-01-10 37 views
0

如果我喜歡寫東西關於單引號和雙引號在PHP

$var = 12; 
echo '$var'; //$var gets printed 
echo "$var"; //12 gets printed 

但是,當我這樣做

$name = 'peter'; $email = '[email protected]'; 
$query = "INSERT INTO email_list (name, email) VALUES ('$name', '$email')"; 

爲什麼變量的值越來越表中插入澄清? 爲什麼'$ name'和'$ email'沒有被插入到表中,因爲它們被包含在單引號內?

同樣,

echo 'i am going <br />'; 

不打印:i am going <br />

+1

你應該只是讀什麼[文件](http://www.php.net/manual/en/language.types.string.php)不得不說關於它。 – crush

+0

而且,它正在打印'我要去
'。您可能沒有看到'
',因爲它被瀏覽器呈現爲HTML。如果您希望'
'以詞彙形式出現在頁面上,請將'Content-type'標題更改爲'text/plain'或轉義尖括號。 – crush

回答

3

爲什麼越來越插入表格,爲什麼不 「$ name」和「$電子郵件」越來越插入表中的變量的值,因爲它們 括單引號內。

由於您的字符串用雙引號引起("INSERT INTO email_list (name, email) VALUES ('$name', '$email')";),所以整個字符串都執行了可變擴展。如果您改變了對報價的使用,那麼您將在字符串中獲得與$name$email相關的輸出。

同樣,echo 'i am going <br />';爲什麼它不打印:i am going <br />

那麼它的現實確實如此,但<br />只是一個換行符,不產生可見的輸出,只是一個換行符。要輸出<br />等標籤並查看它,您需要輸出實體,例如&lt;br /&gt;,其在瀏覽器中顯示爲<br />

如要進一步瞭解,請參閱http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing

0

OK,因爲單引號是雙引號內,它們被作爲簡單的單引號字符。他們不是作爲分隔符。 ie:

"hey guys, I'm going to the movies!" // <-- acting as simple text 
"hey guys".' '."eat my food, ok?" // <-- acting as delimiters since it's broken up into three actual strings concatenated by the dot operator. 

確實有道理嗎?

+0

歡迎來到StackOverflow。 – crush

+0

你是最後一個字符串'我要去
'應該打印html標記。如果不是,你可能通過瀏覽器查看它。檢查輸出源。 – CreationTribe

+0

所以你的意思是單引號越來越內部雙引號.....我是對的 –