news 2026/5/6 21:28:53

HoRain云--PHP字符串操作完全指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HoRain云--PHP字符串操作完全指南

🎬 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; // 1

2️⃣ 显式转换

(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"; }

十一、常见坑总结

正确做法

"0" == false

===

中文乱码

mb_*

SQL 注入

用预处理

XSS

htmlspecialchars

+拼接

.

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/6 21:21:36

3分钟学会QQ聊天记录解密:全平台数据库迁移终极指南

3分钟学会QQ聊天记录解密&#xff1a;全平台数据库迁移终极指南 【免费下载链接】qq-win-db-key 全平台 QQ 聊天数据库解密 项目地址: https://gitcode.com/gh_mirrors/qq/qq-win-db-key 还在为无法查看旧设备上的QQ聊天记录而烦恼吗&#xff1f;qq-win-db-key项目为你提…

作者头像 李华
网站建设 2026/5/6 21:20:53

多因子检测技术解锁动脉粥样硬化的分子密码:从生物标志物到系统评估

一、引言动脉粥样硬化是一种慢性、进行性的血管病变&#xff0c;其病理过程涉及脂质代谢紊乱、内皮功能障碍、炎症反应及氧化应激等多个环节。该疾病是心肌梗死、脑卒中等严重心血管事件的主要病理基础。早期识别与风险评估对于延缓疾病进展、改善临床预后具有重要意义。生物标…

作者头像 李华