1. 字符串定义:一个字符串 string 就是由一系列的字符组成,其中每个字符等同于一个字节。这意味着 PHP 只能支持 256 的字符集,因此不支持 Unicode 。详见字符串类型详解。
字符串语法:
- 单引号
- 双引号
- heredoc语法结构
- newdoc语法结构
单引号只有两个字符需要转义 单引号(’)反斜杠(\)
echo 'You deleted C:\\*.*?'; //输出: You deleted C:\*.*?
echo 'Arnold once said: "I\'ll be back"';//输出: Arnold once said: "I'll be back"
字符串如果是包在双引号中的将会对特殊的字符进行解析
序列 | 含义 |
---|---|
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\e | Escape(ASCII 字符集中的 ESC 或 0x1B (27))(自 PHP 5.4.0 起) |
\f | 换页 |
\\ | 反斜线 |
\$ | 美元标记 |
\" | 双引号 |
\[0-7]{1,3} | 以8进制表达的字符 |
\x[0-9a-fA-F]{1,2} | 以十六进制表达的字符 |
双引号定义字符串的最大特性就是变量会被解析
2. 变量解析
(1)简单规则
当 PHP 解析器遇到一个美元符号($)时,它会和其它很多解析器一样,去组合尽量多的标识以形成一个合法的变量名。可以用花括号来明确变量名的界线。
$juice = "apple";
echo "He drank some $juice juice.".PHP_EOL; //输出:He drank some apple juice.
(2)复杂规则
复杂语法不是因为其语法复杂而得名,而是因为它可以使用复杂的表达式。
注:由于 { 无法被转义,只有 $ 紧挨着 { 时才会被识别。可以用 {\$ 来表达 {$。
$name = '笑话';
echo "我的名字叫{$name}";
//输出:我的名字叫笑话
echo "我的名字叫{ $name}";
//输出:我的名字叫{ 笑话} $name 被当作简单变量解析了其他字符被原样输出
带引号的数组
$student = array(
array('id' => 1, 'name' => '小花', 'sex' => '女'),
array('id' => 2, 'name' => '小明', 'sex' => '男'),
);
$studentStr = <<<ABL
姓名:{$student[0]['name']}, 性别:{$student[0]['sex']} <br>
ABL;
echo $studentStr;
//输出: 姓名:小花, 性别:女