Correction status:qualified
Teacher's comments:
代码:
<?php //输出字符串时,单引号与双引号的区别 //输出不同的内容,需要使用不同的包装器,或者叫定界符,单引号和双引号,就是字符串类型的包装器,这与js是一样的 //如果是纯字符串,推荐使用单引号,如果字符串有变量或者特殊字符的话 //记忆: 单引号原样输出,双引号会将内容解析输出 //那么:双引号会将哪些内容解析呢?二类: 1.变量, 2.特殊字符 //创建变量 $money = '100元'; $title1 = '我今天花了$money吃大餐'; //双引号包装的字符串可以解析内部的变量名 //会将$符后面尽可能多的字符解析为变量名 //把:$后面的money收购了饿了么全部识别为变量了 // $title2 = "阿里$money收购了饿了么!"; //最好用花括号{}添加一个变量定界符 $title2 = "我今天花了{$money}吃大餐"; echo $title1; echo '<br>'; echo $title2; echo '<hr>'; //如果要在字符串输出定界符,怎么办? //使用转义字符:反斜线,将原字符进行转义,使其失去原有的作用 echo '我觉得\'宫保鸡丁\'很好吃'; echo '<br>'; // 双引号也是一样的 echo "我觉得\"宫保鸡丁\"很好吃"; echo '<br>'; //第二种方案,使用与定界符不同类型的引号:双引号 echo '我觉得"宫保鸡丁"很好吃'; echo '<hr>'; //特殊字符: //如果要输出转义字符:\自身,连写二个将自身转义就可以 echo 'php中的转义字符是;\\'; echo '<br>'; //类似的还有回车\r,换行符\n,制表符\t,美元符\$ //单引号会原样输出,不会解析换行符 echo '吃晚饭了吗?\n 没吃呢'; echo '<br>'; //双引号会对特殊字符进行解析 //在页面中只会看到一个空格,但是在源代码中的确是换行了 echo "吃晚饭了吗?\n 没吃呢"; echo '<br>'; //如果想在页面中看到换行效果,可以使用函数进行处理一下 //nl2br($string)将字符串中的\n用<br>进行替换 echo nl2br("吃晚饭了吗?\n 没吃呢"); echo '<hr>'; //关于双引号中的变量会被解析,刚刚说过了,如果不想让变量被解析,怎么做呢? $siteName = 'php中文网'; //双引号中的变量会被解析出来 echo "站点名称{$siteName}"; echo '<br>'; //对$进行转义: \$,就是会原样输出了,不会再解析 echo "站点名称{\$siteName}"; echo '<hr>'; //除了用引号做为字符串定界符外,还有二种声明字符串的方法 //heredoc和nowdoc /** * heredoc结构 * 功能:与双引号创建的字符串基本一致 * 1.可以将内部的变量和特殊字符进行自动转义(不需要转义字符) * 2.可以直接使用双引号,而不需要转义 * */ // $heredoc = <<< "HEREDOC" $heredoc = <<< HEREDOC {$siteName}致力于打造一站式免费学习平台,誓将"公益"进行到底!\n 这里是PHP爱好者共同的家园,我们热忱欢迎来自全国各地的PHP爱好者~~ HEREDOC; echo $heredoc; echo '<hr>'; /** * 为什么没有看到\n的换行效果呢?是不是没有转义呢?事实上已经自动转义了 * 因为你已经看不到\n,它在页面中显示一个空格。如果想在页面中看到换行效果 * 可以使用函数 nl2br() */ echo nl2br($heredoc); echo '<hr>'; /** * nowdoc * php5.3+ * 功能:与单引号创建的字符串基本一致 * 1. 将内容原样输出,不解析变量和特殊字符 * 2. 可以直接使用单引号,不需要转义 */ $nowdoc = <<< 'NOWDOC' <h3>$siteName</h3> \r\n 'www.php.cn' NOWDOC; echo $nowdoc;
点击 "运行实例" 按钮查看在线实例