字符串处理
单引号/双引号区别、heredoc/nowdoc、{} 变量解析
字符串处理
PHP 处理字符串的能力在所有语言中数一数二。双引号、单引号、heredoc/nowdoc 各有适用场景。
学完本章你将: 掌握单引号/双引号区别、heredoc/nowdoc、变量解析。
双引号 vs 单引号
php
<?php
$name = "小明";
// 双引号:解析变量和转义字符
echo "你好,$name!\n"; // 你好,小明!
echo "你好,{$name}!\n"; // 明确指定变量边界(推荐)
// 单引号:不解析变量,只有 \\ 和 \' 两个转义
echo '你好,$name!'; // 你好,$name!
💡 性能提示: 单引号比双引号略快(不需要扫描变量)。大量拼接时用单引号或用
implode()。
heredoc —— 多行字符串
php
<?php
$text = <<<EOT
这是第一行。
这是第二行,变量 $name 会被解析。
缩进会保留。
EOT;
// 结束标记 EOT 必须顶格写,前面不能有空格(PHP 7.3 前)
nowdoc —— 不解析的 heredoc
php
<?php
$text = <<<'EOT'
变量 $name 不会被解析。
相当于多行版单引号。
EOT;
花括号变量解析
php
<?php
$juice = "apple";
echo "He drank some {$juice}s."; // He drank some apples.
// 复杂表达式也可以用花括号
echo "结果:{$arr['key']}";
echo "时间:{date('Y-m-d')}"; // PHP 8.2+ 支持函数调用