PHP 7.1 字符串语法与此前版本基本一致,核心差异在于类型系统增强(如可为空类型),日常开发需掌握单双引号区别、变量插值、连接符“.”、UTF-8安全的mb_*函数及常用内置函数。

PHP 7.1 的字符串基础用法和此前版本基本一致,核心差异不在语法本身,而在于类型系统增强(如可为空类型),但字符串操作仍围绕定义、连接、转义、长度与常用函数展开。掌握以下四点就覆盖日常开发绝大多数场景。
单引号与双引号的区别
这是最易混淆也最关键的起点:
- 单引号字符串:不解析变量,不识别大部分转义符,仅支持
'(单引号本身)和\(反斜杠)两种转义;内容原样输出,性能略高。 - 双引号字符串:解析变量(如
$name)和转义字符,支持、、、$、\等;适合需要插值或格式控制的场景。 - 变量插值若含边界歧义(如
"Hello $user_name!"),可用大括号明确范围:"Hello {$user_name}!"。
字符串连接与拼接
PHP 使用英文句点 . 作为连接符,不是加号:
- 直接拼接:
$greeting = "Hi" . ", " . $name . "!"; - 赋值并连接(复合操作符):
$msg .= " — updated"; - 注意:数字参与连接时会自动转为字符串,无需手动转换。
基础长度与安全截取
中文或 UTF-8 多字节字符需特别注意:
立即学习“PHP免费学习笔记(深入)”;
-
strlen()返回字节数,对中文可能出错(如一个汉字占 3 字节,返回 3 而非 1); - 推荐搭配
mb_strlen($str, 'UTF-8')获取真实字符数; - 截取同理:
substr($str, 0, 5)可能切碎中文,应改用mb_substr($str, 0, 5, 'UTF-8')。
常用内置函数速查
这些函数在 PHP 7.1 中全部可用,且无兼容性问题:
-
trim()、ltrim()、rtrim():去除首尾空白或指定字符; -
strpos($haystack, $needle):查找子串位置,注意用!== false判断(因起始位置 0 是合法结果); -
str_replace($search, $replace, $subject):批量替换,支持数组参数; -
explode($delimiter, $string)和implode($glue, $array):字符串与数组互转; -
strtolower()、strtoupper()、ucfirst():大小写处理(对非 ASCII 字符建议配合mb_*函数)。
PHP 7.1 并未新增字符串语法,但强化了类型声明能力——比如函数可声明参数为 ?string(允许 null),让字符串处理逻辑更健壮。实际编码中,选对引号、用对函数、区分字节与字符,就稳了。



















