作者sonicjr (平凡中的不平凡)
看板PHP
标题[心得] PHP里单引号('')跟双引号("")的差别
时间Thu Mar 2 13:35:40 2006
我想大家都知道单引号跟双引号在 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
1F:推 ottokang:好文推一个 03/02 15:09
2F:推 oiolong:建议在作 sql 语法时用 sprintf 03/04 22:53
3F:→ oiolong:ex $sql = sprintf("select * from member wher name = 03/04 22:54
4F:→ oiolong:'%s', $name); 这样的话看的比较清楚 03/04 22:55
5F:→ oiolong:靠...刚才看回文发现我OP 了... 03/04 22:56