浅析变量的作用域与检测
输出字符串时,单引号与双引号的区别
输出不同的内容,需要使用不同的包装器,或者叫定界符,单引号和双引号,就是字符串类型的包装器,这与js是一样的
如果是纯字符串,推荐使用单引号,如果字符串有变量或者特殊字符的话
记忆: 单引号原样输出,双引号会将内容解析输出
那么:双引号会将哪些内容解析呢?二类: 1.变量, 2.特殊字符
如果要在字符串输出定界符,怎么办?
用转义字符:反斜线,将原字符进行转义,使其失去原有的作用
除了用引号做为字符串定界符外,还有二种声明字符串的方法
heredoc和nowdoc
heredoc结构
功能:与双引号创建的字符串基本一致
1.可以将内部的变量和特殊字符进行自动转义(不需要转义字符)
2.可以直接使用双引号,而不需要转义
nowdoc
php5.3+
功能:与单引号创建的字符串基本一致
1. 将内容原样输出,不解析变量和特殊字符
2. 可以直接使用单引号,不需要转义
实例
<?php header("Content-type:text/html;charset=utf-8"); //创建变量 $name = '张小明'; //双引号输出变量 echo "我的名字叫{$name}"; //单引号输出变量 echo '我的名字叫'.$name; echo '<br>'; //使用转义字符打印单引号 echo '我的名字叫\''.$name.'\''; echo '<br>'; // 双引号也是一样转义 echo "我的名字叫\"{$name}\""; echo '<br>'; //使用与定界符不同类型的引号:双引号 echo '我的名字叫:"'.$name.'"'; echo '<br>'; //对$进行转义: \$,就是会原样输出了,不会再解析 echo "我的名字叫{\$name}"; echo '<hr>'; // $heredoc = <<< "HEREDOC"可以自动解析特殊字符不需要转义 $heredoc = <<< HEREDOC {$name}是一个"三好学生",\n 同时也是一个'班长'。 HEREDOC; echo $heredoc; /** * 为什么没有看到\n的换行效果呢?是不是没有转义呢?事实上已经自动转义了 * 因为你已经看不到\n,它在页面中显示一个空格。如果想在页面中看到换行效果 * 可以使用函数 nl2br() */ echo '<hr>'; echo nl2br($heredoc); ?>
运行实例 »
点击 "运行实例" 按钮查看在线实例