本文目录导读:

我来详细介绍 PHP 中的字符串操作和 Heredoc 语法:
字符串定义方式
单引号字符串
$name = 'John'; $str1 = 'Hello $name'; // 不会解析变量 $str2 = 'Hello \'world\''; // 使用转义字符 echo $str1; // 输出:Hello $name echo $str2; // 输出:Hello 'world'
双引号字符串
$name = 'John';
$str1 = "Hello $name"; // 解析变量
$str2 = "Line 1\nLine 2"; // 支持转义字符
$str3 = "Price: {$price}元"; // 使用花括号明确变量边界
echo $str1; // 输出:Hello John
字符串连接
$first = 'Hello'; $second = 'World'; $result = $first . ' ' . $second; // 使用.连接 $result .= '!'; // 附加字符串 echo $result; // 输出:Hello World!
Heredoc 语法
基本 Heredoc
$name = '张三';
$age = 25;
$text = <<<EOT
你好,$name!
你的年龄是{$age}岁。
这是多行文本。
EOT;
echo $text;
/* 输出:
你好,张三!
你的年龄是25岁。
这是多行文本。
*/
Heredoc 特点
- 解析变量(类似双引号)
- 保持换行和缩进
- 不需要转义引号
- 结束标识必须单独一行,不能有缩进
Nowdoc 语法(单引号版Heredoc)
$name = '张三'; $text = <<<'EOD' 这里不会解析 $name 变量 直接输出原始文本 EOD; echo $text; // 输出:这里不会解析 $name 变量
实际应用示例
HTML模板生成
$title = '用户信息';
$username = 'admin';
$html = <<<HTML
<!DOCTYPE html>
<html>
<head>{$title}</title>
</head>
<body>
<div class="user-info">
<h1>欢迎,{$username}</h1>
<p>这是用户管理页面</p>
</div>
</body>
</html>
HTML;
echo $html;
SQL查询构建
$table = 'users';
$condition = 'status = 1';
$sql = <<<SQL
SELECT id, name, email
FROM {$table}
WHERE {$condition}
ORDER BY created_at DESC
LIMIT 10
SQL;
echo $sql;
邮件模板
$to = 'user@example.com';
$subject = '注册确认';
$username = '新用户';
$email = <<<MAIL
尊敬的{$username}:
感谢您注册我们的服务。
请点击以下链接确认您的邮箱:
https://example.com/verify?token=xxx
如有任何问题,请联系客服。
此致
敬礼
技术支持团队
MAIL;
// 发送邮件
mail($to, $subject, $email, "Content-Type: text/plain; charset=utf-8");
JSON生成
$data = [
'name' => '李四',
'age' => 30,
'skills' => ['PHP', 'JavaScript', 'Python']
];
$json = <<<JSON
{
"name": "{$data['name']}",
"age": {$data['age']},
"skills": ["PHP", "JavaScript", "Python"]
}
JSON;
echo $json;
字符串常用函数
长度和截取
$str = 'Hello World'; echo strlen($str); // 11 echo substr($str, 0, 5); // Hello echo substr($str, -5); // World
查找和替换
$str = 'Hello World';
echo strpos($str, 'World'); // 6
echo str_replace('World', 'PHP', $str); // Hello PHP
格式化
$name = 'PHP';
$version = 8.0;
$str = sprintf("Language: %s, Version: %.1f", $name, $version);
echo $str; // Language: PHP, Version: 8.0
最佳实践
选择合适的引号
// 没有变量时用单引号(性能更好)
$str1 = 'static string';
// 有变量时用双引号
$str2 = "user: {$username}";
// 多行文本用Heredoc
$str3 = <<<TEXT保持格式
TEXT;
避免常见错误
// 错误:Heredoc结束标识有缩进 $str = <<<EOT EOT; // 错误!不能有空格 // 正确 $str = <<<EOTEOT; // 必须顶格
性能优化
// 大量字符串拼接时使用数组
$parts = [];
for ($i = 0; $i < 1000; $i++) {
$parts[] = "item {$i}";
}
$result = implode(', ', $parts);
// 避免在循环中使用 .=
$str = '';
foreach ($items as $item) {
$str .= $item; // 性能较差
}
这些就是 PHP 中字符串和 Heredoc 的主要用法,根据实际需求选择合适的方式即可。