Correction status:Uncorrected
Teacher's comments:
<meta charset="utf-8"> <?php header("Content-type:text/html;charset=utf-8"); // PHP对字符串的处理规则 //1、输出字符串时,单引号与双引号的区别: //①输出不同的内容,需要使用不同的包装器,或者叫定界符,单引号和双引号,就是字符串类型的包装器,这与js是一样的。 //②如果是纯字符串,推荐使用单引号,如果字符串有变量或者特殊字符的话。 //③单引号原样输出,双引号会将变量和特殊字符解析输出。 //④双引号包装的字符串可以解析内部的变量名,会将$符后面尽可能多的字符解析为变量名,最好用花括号{}添加一个变量定界符。 //创建字符变量 $name1 = '朱老师'; $name2="朱老师"; $str='好帅!'; echo '朱老师好帅!'; //直接显示字符串 echo "朱老师好帅!"; //看看单引号和双引号显示结果 echo '<br>'; //echo '$name1好帅!';错误 //echo "$name1好帅!";错误 echo "$name1 好帅!";//在字符变量后面加个空格 echo "{$name1}好帅!";//字符变量加上字符串 echo "$name1,$str"; //字符变量加字符变量 echo '<br>'; echo '<hr>'; //2、如果要在字符串输出定界符,怎么办? //①使用转义字符:反斜线,将原字符进行转义,使其失去原有的作用。 echo '郭德纲:\'你无耻的样子很有我当年的神韵\''; //单引号 echo '<br>'; echo "郭德纲:\"你无耻的样子很有我当年的神韵\""; // 双引号也是一样的 echo '<br>'; //②第二种方案,使用与定界符不同类型的引号:双引号。 echo '郭德纲:"你无耻的样子很有我当年的神韵"'; echo '<br>'; //③特殊字符: 如果要输出转义字符:\自身,连写二个将自身转义就可以了。 echo 'php中的转义字符是: \\'; //反斜杠\\ //类似的还有回车符\r,换行符\n,制表符\t,美元符\$,双引号\"(单引号不转义),\NNN,\xNN echo '<br>'; echo '明天会下雨吗? \n 不会的'; //注意:单引号会原样输出,不会解析换行符,双引号会对特殊字符进行解析。 echo '<br>'; echo "明天会下雨吗? \n 不会的"; //虽然在页面中只会看到一个空格,但是在源代码中的确是换行了; echo '<hr>'; //如果想在页面中看到换行效果,可以使用函数进行处理一下, echo nl2br("明天会下雨吗? \n 不会的"); //可以用nl2br($string)函数,将字符串中的\n用<br>进行替换。 //④除了用引号做为字符串定界符外,还有二种声明字符串的方法:使用定界符"<<<"来定义字符串。 //结构: //$str2=<<<EOD(后面不能有空格) // 字符串 //EOD(必须靠边,其前面不能有空格) /* 功能:与双引号创建的字符串基本一致。 * 1.可以将内部的变量和特殊字符进行自动转义(不需要转义字符)。 * 2.可以直接使用双引号,而不需要转义。 * 3. */ echo '<hr>'; //下面是HEREDOC $str2=<<<EOD {$name1}致力于打造一站式免费学习平台,誓将"公益"进行到底!\n 这里是PHP爱好者共同的家园,我们热忱欢迎来自全国各地的PHP爱好者~~ EOD; echo $str2; /** * 为什么没有看到\n的换行效果呢?是不是没有转义呢?事实上已经自动转义了! * 因为你已经看不到\n,它在页面中显示一个空格。如果想在页面中看到换行效果, * 可以使用函数 nl2br()。 */ echo '<hr>'; echo nl2br($str2); echo '<hr>'; //下面是NOWDOC //直接使用单引号,不需要转义,将内容原样输出,不解析变量和特殊字符。 $str3=<<<'EOT' <h3>$name2</h3> \r\n '是www.php.cn的教师!' EOT; echo $str3; //与HEREDOC对应的是NOWDOC,后者解析起来更快,相当于双引号和单引号的区别。
点击 "运行实例" 按钮查看在线实例