单引号:


  1. 想表达单引号自身,需要用反斜线()转义
  2. 想表达反斜线()自身,需要用双反斜线(\)
  3. 其他任何转义序列(r)(n)等,都会当作字符串处理
//输出 a'bcd
echo 'a\'bcd';

//输出 a\bcd
echo 'a\\bcd';

//输出 a\bcd
echo 'a\bcd';

//输出 a\nbcd
echo 'a\nbcd';

双引号


  1. 将对一些特殊字符进行转义
header 1 header 2
n 换行符
r 回车
t 水平制表符
v 垂直制表符
e esc
f 换页
\\ 反斜线
\$ 美元标记
\" 双引号
\[0-7]{1,3} 符合该正则表达式序列的是一个以八进制方式来表达的字符
\x[0-9A-Fa-f]{1,2} 符合该正则表达式序列的是一个以十六进制方式来表达的字符
  1. 变量解析
$a = 'abc';

//输出 abc
echo "{$a}";

//输出 abc
echo "${a}";

//输出 { abc}
echo "{ $a}"

//报错:Use of undefined constant a - assumed 'a'
echo "${ a}";
//输出 abcdef

// A会被优先作为常量处理
// 然后再解析 $b
define("A",'b');
$b = 'cdef';
echo "${ A}";

heredoc


  1. Heredoc 结构就象是没有使用双引号的双引号字符串,这就是说在 heredoc 结构中单引号不用被转义。
//输出 a       bc'      def

echo <<<begin
a\tbc'      def
begin;

Nowdoc 结构


  1. 就象 heredoc 结构类似于双引号字符串,Nowdoc 结构是类似于单引号字符串的。Nowdoc 结构很象 heredoc 结构,但是 ==nowdoc 中不进行任何解析操作==。
//输出:a\tbc      def '
echo <<<'EOT'
a\tbc      def '
EOT;

曹世伟
0 声望0 粉丝