[討論] 單、雙引號

作者: nakahusa (NA)   2015-12-04 11:57:02
雖然知道這個問題之前常被拿出來,
不過爬了文之後還是蠻疑惑的,
之前都是使用雙引號,
echo "test";
但因為團隊開發,開始有統一 coding style,
參考 PHP FIG,是使用單引號,
所以後來也都改用單引號,
但在版上爬文,發現有測試反而是雙引號的速度較快,
而且雙引號要在字串中加入變數也較為方便,
$str = "moto";
// double quote
echo "Hello {$str}";
// single quote
echo 'Hello ' . $str . '';
在寫 SQL 時也是,因為常會使用到單引號,
如果最外層也是單引號,會要加很多的 \',
$sql = 'INSERT INTO `table` (`col`) VALUES (\'val\');';
$sql = 'UPDATE `table SET `col`=\'val\';';
綜合以上,
不知道為什麼大多數 coding style 文件和 open source 都是用單引號呢?
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-12-04 13:15:00
(1)迷信單引號比較快(2)認為一路 . 到底比較屌mysql stmt中好像用雙引號也可以 所以這問題還比較小不過我認為迷信單引號可以休矣 根本在整人啊
作者: nakahusa (NA)   2015-12-04 14:17:00
是說 DB 的部份用 PDO 是也沒什麼差啦 prepare、execute就好了,也用不到引號,不過單就插變數這事我就覺得雙引號比較方便了 = =
作者: liaosankai (低溫烘焙)   2015-12-04 14:41:00
雙引號+1 in php單引號 for team work
作者: wotupset (wotupset)   2015-12-04 14:59:00
教學文件會用單引號分開 是因為其他語言都沒這樣的用法
作者: nakahusa (NA)   2015-12-04 15:05:00
考慮到其他語言的話是也沒錯,但如果像是要使用 \r \n還是必須要用雙引號,只是不懂為什麼大多都是看到用單引號覺得有點疑惑總覺得單引號使用起來相對較為不便於雙引號
作者: wotupset (wotupset)   2015-12-04 15:13:00
用的開心就好囉 sql指令我也是用雙引號 www
作者: JustGame (JustGame)   2015-12-04 21:11:00
不是因為雙引號其實會先判斷字串中是否存在變數的關係?
作者: ns1234 (FAR)   2015-12-04 22:10:00
個人覺得雙引號比較方便,不用為了變數又一堆點 單引號之類的
作者: tkdmaf (皮皮快跑)   2015-12-04 23:12:00
基本上我二種都用,不過我有自己的使用規則就是了。
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-12-05 00:25:00
其他語言都沒有?sh有沒有?perl有沒有?沒有看過槍的人拿到一把槍 就把他當拐杖還跟其他人說 你拿起來瞄不對 像我這樣撐著才對 科!
作者: xdraculax (首席怪叔叔)   2015-12-05 12:37:00
ci 風格一般單引號,sql 雙引號另為編輯器上色,個人喜歡用 . 接字,不直接包在雙引號裡
作者: bibo9901 (function(){})()   2015-12-05 13:02:00
樓上那是你的編輯器太爛了. notepad++ 和 vim 都可以
作者: xdraculax (首席怪叔叔)   2015-12-05 13:26:00
ultraedit(非最新版)用習慣了,其它覺得很不順手,.接字也看習慣了,. 前後還要有空格,把變數清清楚楚分出來三年前我也是習慣變數包在雙引號裡,後來維護覺得 .比較好閱讀,才慢慢改過來的
作者: Kenqr (function(){})()   2015-12-05 14:33:00
用有語法高亮度的編輯器 直接包在裡面會比較好閱讀
作者: dinos (守護神)   2015-12-06 11:31:00
在php3以前開始的應該比較習慣用單引號
作者: knives   2015-12-07 10:52:00
還是用單引號比較好吧,變數 跟純文字還是分開,之後debug也比較好維護
作者: Bambe (起笑的我們:P)   2015-12-08 10:25:00
雙引號+1,但遇到變數還是會用 . 區分變數,再來遇到\r\n這類的字元就一定得用雙引號

Links booklink

Contact Us: admin [ a t ] ucptt.com