🎬 HoRain 云小助手:个人主页
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
目录
⛳️ 推荐
一、字符串变量的定义
1️⃣ 基本定义
2️⃣ 单引号 vs 双引号(重点)
转义字符
二、字符串变量解析(插值)
1️⃣ 简单变量
2️⃣ 复杂表达式(推荐写法)
三、字符串拼接
四、常用字符串函数(必会)
🔹 长度与查找
🔹 截取与替换
🔹 大小写
🔹 去空格
五、多行字符串(Heredoc / Nowdoc)
1️⃣ Heredoc(解析变量 ✅)
2️⃣ Nowdoc(不解析 ❌)
六、字符串与类型转换(非常关键)
1️⃣ 自动转换
2️⃣ 显式转换
七、字符串安全(非常重要)
1️⃣ 输出到 HTML(防 XSS)
2️⃣ 输出到 JS
3️⃣ SQL(永远别拼接)
八、字符串变量在数组 / 对象中
九、可变变量(少用,危险)
十、PHP 8+ 新特性
✅ 字符串作为类型
✅ 字符串枚举
十一、常见坑总结
十二、最佳实践 ✅
十三、你可以继续问我
在 PHP 中,字符串变量是最常用的类型之一,但用法灵活、坑也不少。下面我用「定义 → 操作 → 安全 → 实战」的方式,把 PHP 字符串变量讲清楚。
一、字符串变量的定义
1️⃣ 基本定义
$name = "Alice"; $city = 'Beijing';引号 | 特点 |
|---|---|
| 解析变量、转义字符 |
| 原样输出,更快 |
2️⃣ 单引号 vs 双引号(重点)
$name = "Alice"; echo "Hello $name"; // Hello Alice ✅ echo 'Hello $name'; // Hello $name ❌转义字符
"\n" // 换行 "\t" // 制表符 "\\" // \ "\""单引号只识别:
'\'' '\\'二、字符串变量解析(插值)
1️⃣ 简单变量
echo "Hello $name";2️⃣ 复杂表达式(推荐写法)
echo "Hello {$user['name']}"; echo "Total: {$cart->total}";✅避免歧义,强烈推荐{}
三、字符串拼接
$full = $firstName . ' ' . $lastName;⚠️ 不要用+(那是 JS)
"a" + "b"; // ❌ 0四、常用字符串函数(必会)
🔹 长度与查找
strlen($s); // 字节长度 mb_strlen($s); // 字符长度(中文安全) strpos($s, "abc"); // 查找位置(失败返回 false) str_contains($s, "a"); // PHP 8+🔹 截取与替换
substr($s, 0, 5); str_replace("a", "b", $s);🔹 大小写
strtolower($s); strtoupper($s); ucfirst($s);🔹 去空格
trim($s); ltrim($s); rtrim($s);五、多行字符串(Heredoc / Nowdoc)
1️⃣ Heredoc(解析变量 ✅)
$text = <<<HTML <h1>Hello $name</h1> <p>Welcome</p> HTML;2️⃣ Nowdoc(不解析 ❌)
$text = <<<'TEXT' Hello $name TEXT;✅ 常用于模板、SQL、HTML
六、字符串与类型转换(非常关键)
1️⃣ 自动转换
"123" + 1; // 124 "123abc" + 1; // 124 "abc" + 1; // 12️⃣ 显式转换
(int) "123"; (float) "3.14"; string: (string) 123;七、字符串安全(非常重要)
1️⃣ 输出到 HTML(防 XSS)
echo htmlspecialchars($s, ENT_QUOTES, 'UTF-8');2️⃣ 输出到 JS
json_encode($s);3️⃣ SQL(永远别拼接)
$stmt = $pdo->prepare("SELECT * FROM users WHERE name = ?"); $stmt->execute([$name]);八、字符串变量在数组 / 对象中
$user = [ 'name' => "Alice", ]; echo $user['name'];$user->name = "Bob"; echo $user->name;九、可变变量(少用,危险)
$foo = "bar"; $bar = "hello"; echo $$foo; // hello⚠️可读性差,不推荐
十、PHP 8+ 新特性
✅ 字符串作为类型
function say(string $msg): void { echo $msg; }✅ 字符串枚举
enum Status: string { case Draft = "draft"; case Published = "published"; }十一、常见坑总结
坑 | 正确做法 |
|---|---|
| 用 |
中文乱码 | 用 |
SQL 注入 | 用预处理 |
XSS |
|
用 | 用 |
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙