php 单双引号与转义的问题

<?echo'a\\nb';echo'<br>';echo'a\nb';?>输出的结果是a\nba\nb第一个‘a\\nb’\\变成了\,这说明单引号也执行的转义但是第2... <?
echo 'a\\nb';
echo '<br>';
echo 'a\nb';
?>

输出的结果是
a\nb
a\nb

第一个 ‘a\\nb’ \\变成了\,这说明单引号也执行的转义
但是第2个为什么没有将\n转义 而是直接输出呢?
展开
 我来答
互联网前世今生

推荐于2016-05-02 · 科技领域创作者
个人认证用户
互联网前世今生
采纳数:314 获赞数:349

向TA提问 私信TA
展开全部
在单引号串中反斜线失去了它的扩展含义(除了添入反斜杠\\和添入单引号\')。所以,当你想在字串中进行变量代换和包含\n(换行符)等转义序列时,你应该使用双引号。

所以单引号不会转义,\\只是添加了一个\,这个类似\' 添加了一个单引号。
追问
也就是说 在单引号中 反斜杠的转义只针对 \\ 和 \' 是这样么?
追答
恩,是这样的,其他情况,必须要双引号才能转义。
ixyqq_net
2014-08-20 · TA获得超过888个赞
知道小有建树答主
回答量:1160
采纳率:0%
帮助的人:1282万
展开全部

预定义字符是: 
句号 (.) 
反斜杠 (\) 
加号 (+) 
星号 (*) 
问号 (?) 
方括号 ([]) 
脱字符号 (^) 
美元符号 ($) 
圆括号 (()) 

echo 'a\\nb';   //进行了转义 所有输出 a\nb
echo 'a\nb';    //双引号可以解析转义字符,单引号不可以解析转义字符

望采纳 Thx

追问
你的解释已经说的很清楚了 单引号不可以解析转义字符
但是为什么第一个 2个反双斜杠 被解析成了1个反双斜杠
追答
* 以单引号为定界符的php字符串,支持两个转义\'和\\ 
* 以双引号为定界符的php字符串,支持下列转义:
\n 换行
\r 回车
\t 水平制表符
\\ 反斜线
\$ 美元符号
\" 双引号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不许说245
2014-08-20 · TA获得超过108个赞
知道答主
回答量:128
采纳率:0%
帮助的人:62.2万
展开全部
单引号不解析变量
双引号解析变量
单引号中双引号不解析变量
双引号中单引号解析变量
或者用连接符拼接字符串
打字不易,如满意,望采纳。
追问
请直接回答问题,你说半天变量 我问题中有一个涉及变量的问题么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tsotsi
2014-08-20 · TA获得超过940个赞
知道小有建树答主
回答量:1367
采纳率:55%
帮助的人:695万
展开全部
...因为你的输出 你是通过浏览器看的。浏览器不能识别\n为换行的 所以你看到\n
追问
你搞笑么
追答
你就说你笑没笑
单引号: 要表达一个单引号自身,需在它的前面加个反斜线(\)来转义。要表达一个反斜线自身,则用两个反斜线(\\)。其它任何方式的反斜线都会被当成反斜线本身:也就是说如果想使用其它转义序列例如 \r 或者 \n,并不代表任何特殊含义,就单纯是这两个字符本身。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式