[讨论] 单、双引号

楼主: 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