批改状态:合格
老师批语:
在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语法,按照语法要求编写。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号