Correction status:qualified
Teacher's comments:
PHP中双引号与单引号对字符串的处理规则不同
<?php $name = '小明'; $work = 'PHP工程师'; echo '这是使用单引号来输出:', '{$name}是个{$work}'; echo '<br>'; echo "这是使用双引号来输出:", "{$name}是个{$work}"; echo '<hr>'; echo '反斜杠转义输出:', '小明是个\'PHP工程师\''; echo '<br>'; echo '单引号双引号输出:', "小明是个'PHP工程师'"; echo '<hr>'; echo '单引号不会解析特殊字符:', '小明是个PHP工程师?\n是的'; echo '<br>'; echo '双引号会解析特殊字符:', "小明是个PHP工程师?\n是的"; echo '<hr>'; echo 'nl2br()将\n解析为换行:',nl2br("明天会下雨吗?\n 不会的"); echo '<hr>'; echo '在$前加反斜杠来避免解析:', "{$name}是个{\$work}"; echo '<hr>'; $heredoc = <<< "HEREDOC" heredoc与双引号功能类似:{$name}是个{$work},"技术"一流 HEREDOC; echo nl2br($heredoc); echo '<hr>'; $nowdoc = <<< 'NOWDOC' nowdoc与单引号功能类似:{$name}是个{$work},'技术'一流 NOWDOC; echo $nowdoc;
点击 "运行实例" 按钮查看在线实例
总结:
1.双引号会解析,单引号原样输出
2.双引号输出变量时需要加花括号{}
3.特殊字符需要转义,\n在页面中被解析为空格,只有在源码中才有换行
4.nl2br(string)将字符串中的\n解析为<br>,实现换行
5.不希望被解析,在$前加反斜杠\
6.heredoc
功能:与双引号创建字符串是一样的,解析变量与特殊字符内部的双引号不需要转义
前后保持一致,可以用别的,比如前面用了A,后面也要用A,在其后不能写空格、注释等其他内容,双引号可以省略
7.nowdoc:
对应着单引号功能:原样输出,单引号也不用转义
单引号不可以省略
要求:php5.3+