[心得] PHP裡單引號('')跟雙引號("")的差別

看板PHP作者 (平凡中的不平凡)時間19年前 (2006/03/02 13:32), 編輯推噓2(203)
留言5則, 2人參與, 最新討論串1/5 (看更多)
我想大家都知道單引號跟雙引號在 php 裡是包住字串用的 但很少人注意到他的差別 只是依個人習慣去使用 其實它們是不太一樣的 例子: $num = 1; echo '$num'; //會輸出 $num echo "$num"; //會輸出 1 echo '"$num"'; //會輸出 "$num" echo "'$num'"; //會輸出 '1' 這樣可以看出分別了嗎? 單引號會把裡面的內容完全當字串輸出 雙引號如果遇到$開頭的變數會去解析變數 如果在雙引號裡要在用雙引號 必需要用 \ 去跳脫 (單引號亦然) 例如: $text = "今天 \"天氣\" 很好"; 但如果單雙引號搭配使用 $text = '今天 "天氣" 很好'; 雙引號裡可以包單引號 當然單引號裡也可以包雙引號 完全依你當時的情況去使用 php 單雙引號都可以接受 但 SQL 語法字串只接受單引號 不接受雙引號的 通常最容易出問題的地方是 SQL 語法的部份 所以 SQL 語法的部份單雙引號的配合就變的很重要 我個人是習慣這樣用 $sql = "select * from member where name = '".$name."' and pw = '".$pw."'"; 我的寫法是 讓字串歸字串 變數歸變數 SQL 語法字串只接受單引號 所以我就用雙引號去包 才不用去加 \ 新手不建議把 SQL 語法分行寫 因為你觀念還不懂 很容易出錯 等你熟一點在嘗試分行 分行的寫法也有很多種 這邊就不多說了 這是個人的一點小小心得 希望對初學者有幫助 高手就請多多指教了 也許你有更好的方法 如果可以也請你分享給大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.75.99.18

03/02 15:09, , 1F
好文推一個
03/02 15:09, 1F

03/04 22:53, , 2F
建議在作 sql 語法時用 sprintf
03/04 22:53, 2F

03/04 22:54, , 3F
ex $sql = sprintf("select * from member wher name =
03/04 22:54, 3F

03/04 22:55, , 4F
'%s', $name); 這樣的話看的比較清楚
03/04 22:55, 4F

03/04 22:56, , 5F
靠...剛才看回文發現我OP 了...
03/04 22:56, 5F
文章代碼(AID): #141eDjgL (PHP)
討論串 (同標題文章)
文章代碼(AID): #141eDjgL (PHP)