一、定义字符串
-
单/双引号定义字符串
- 单引号定义的字符串则不会解析
- 双引号定义的字符串会对php变量及特殊字符进行解析
- 特殊字符转译表:
特殊字符 意义 \n 换行 \r 回车 \t 水平制表符 \v 垂直制表符 \e Escape \f 换页 \ 反斜线 $ 美元符号 " 双引号 [0-7]{1,3} 符合该正则表达式序列的是一个以八进制方式来表达的字符 \x[0-9A-Fa-f]{1,2} 符合该正则表达式序列的是一个以十六进制方式来表达的字符
-
heredoc
- Heredoc结构就像是没有使用双引号的双引号字符串
- 对php变量及特殊字符进行解析
- 定义语法:
- 规则:
<<<标示符名称 //此处必须是单独成行 要定义的字符串 //该内容中注释无效 标示符名称; //必须单独成行,不能缩进。结束有且仅可以有一个分号。分号后面不能有任何东西,注释和空格都不行
- 栗子:
$name = '学校'; echo <<< AA 我在 $name 学习php, 此处应该打字符'A':\x41 AA;
- 规则:
-
nowdoc
- Nowdoc结构是类似于单引号字符串
- 不再解析php变量及特殊字符
- 定义语法:
- 规则:
<<<'标示符名称' 要定义的内容 标示符名称;
- 栗子:
$name = '什么'; echo <<< 'BB' 我在 $name 学习php,不会再解析变量name 此处应该打字符'A':\x41 特殊字符也不会被解析 BB;
- 规则:
-
变量解析说明
- 当php解析器遇到一个美元符号($)时,会组合尽量多的标识以形成一个合法的变量名
- 可以用花括号来明确变量名的界限
- 由于{无法被转义,只有$紧挨着{时才会被识别。可以用{$来标识字符串{$
- 栗子:
$heeee='hhhh'; $he='eeee'; echo "the string is {$he}eee"; // the string is eeeeeee echo "the string is ${he}eee"; // the string is eeeeeee echo "the string is \${he}eee"; // the string is ${he}eee echo "the string is {\$he}eee"; // the string is {$he}eee