在 PHP 8 中,多行字符串的表示方式主要有以下几种:
- 双引号字符串 (
"..."
)
双引号字符串支持多行书写,换行符会被保留,并且可以包含变量解析和转义字符。
$str = "这是一段
多行字符串
包含换行符";
echo $str;
- 单引号字符串 (
'...'
)
单引号字符串同样支持多行书写,但不会解析变量或转义字符(除了\'
和\\
)。换行符也会被保留。
$str = '这也是一段
多行字符串
不会解析变量';
echo $str;
- Heredoc 语法
Heredoc 是一种方便定义多行字符串的方式,使用<<<
后跟一个标识符(通常是大写字母),以另一个对齐的标识符结束。支持变量解析和转义字符。
$name = "世界";
$str = <<<EOD
你好,{$name}!
这是一段
多行字符串
EOD;
echo $str;
- Nowdoc 语法
Nowdoc 类似于 Heredoc,但使用单引号包裹标识符(<<<'EOD'
),不会解析变量或转义字符,适合存储原始文本。
$name = "世界";
$str = <<<'EOD'
你好,{$name}!
这是一段
不解析变量的字符串
EOD;
echo $str;
注意事项
- Heredoc 和 Nowdoc 的结束标识符必须顶格(不能有缩进),否则会导致语法错误。
- 双引号和 Heredoc 支持变量解析(如
{$variable}
或$variable
),而单引号和 Nowdoc 不支持。 - PHP 8 没有引入新的多行字符串语法,以上方式与 PHP 7 一致。