在PHP开发中,了解PHP对字符串的处理规则很重要,一个字符串可以用四种方式表达:
单引号
双引号
heredoc语法
nowdoc语法
下面用代码来展示:
实例
<?php /*单引号 *定义一个字符串最简单的方法就是使用单引号 *单引号里面的变量和特殊字符都不会被转义 *输出单引号本身需要在前面加\反斜线 */ $me = 'feng'; $you = '$me and \n'; $he = 'I\'m feng'; echo $me; //结果为feng echo '<br>'; echo $you; //结果为$me and \n echo '<br>'; echo $he; //结果为I'm feng echo '<hr color = red>'; /* *双引号 *用双引号定义的字符串最重要的特征是变量会被转义 *字符串如果被包围在双引号中,PHP将对字符串中的 *变量以及特殊字符进行转义 */ $me = "feng"; $you = "{$me} and \n"; //变量可用花括号隔开 $he = "I\'m feng"; echo $me; //结果为feng echo '<br>'; echo $you; //结果为feng and (空格) echo '<br>'; echo $he; //结果为I\'m feng echo '<hr color = red>'; /*Heredoc结构 *按照语法要求编写,heredoc结构中单引号不会被转义,但是变量将被替换特殊字符将被转义,和双引号作用相似*/ $heredoc = <<< HEREDOC {$me}是一个新的PHPer,誓将"code"进行到底!\n 坚持到底! HEREDOC; echo $heredoc; //结果为feng是一个新的PHPer,誓将"code"进行到底! 坚持到底! /** * 为什么没有看到\n的换行效果呢?是不是没有转义呢?事实上已经自动转义了 * 因为你已经看不到\n,它在页面中显示一个空格。如果想在页面中看到换行效果 * 可以使用函数 nl2br() */ echo nl2br($heredoc); //结果为feng是一个新的PHPer,誓将"code"进行到底! //坚持到底! echo '<hr color = red>'; /*Nowdoc 结构 *按照语法编写,nowdoc结构类似单引号,变量和特殊字符都不会被转义。 */ $nowdoc = <<< 'NOWDOC' <h3>$me</h3> \r\n 'www.php.cn' NOWDOC; echo $nowdoc; //结果为 $me //\r\n 'www.php.cn'
运行实例 »
点击 "运行实例" 按钮查看在线实例
运行结果如下图:
运行结果如预期,充分表明了PHP中字符串的处理规则。
总结:
利用单引号进行处理的字符串,将不会转义特殊字符和变量。
利用双引号处理的字符串,将会对变量和特殊字符进行转义。
利用反斜杠\可以转义特殊字符本身。
如果需要大段使用单引号或者双引号处理的字符串,可以使用heredoc和nowdoc语法,按照语法要求编写。