Z
ZHANK
字符串与数组

字符串处理

单引号/双引号区别、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+ 支持函数调用