最直接的方法是使用 strrev() 函数,但仅适用于单字节编码;处理 UTF-8 字符串需用 mb_strlen() 和 mb_substr() 循环拼接,或先拆分为字符数组再反转合并。

PHP 中实现字符串反向输出最直接的方法是使用内置函数 strrev(),它专为字符串反转设计,简洁高效。
使用 strrev() 快速反转
这是最推荐的方式,无需手动遍历或拼接,一行即可完成:
$str = "hello"; echo strrev($str); // 输出:olleh
注意:strrev() 只适用于单字节编码(如 ASCII、ISO-8859-1),对 UTF-8 中的中文、emoji 等多字节字符会乱码。
处理 UTF-8 字符串(含中文)
需借助 mb_ 系列函数,确保按字符而非字节操作:
立即学习“PHP免费学习笔记(深入)”;
- 用 mb_strlen() 获取字符数(非字节数)
- 用 mb_substr() 每次截取一个字符
- 从末尾开始循环拼接
$str = "你好 world";
$reversed = '';
for ($i = mb_strlen($str, 'UTF-8') - 1; $i >= 0; $i--) {
$reversed .= mb_substr($str, $i, 1, 'UTF-8');
}
echo $reversed; // 输出:dlrow 好你用数组方式实现(兼容 UTF-8)
将字符串按字符拆分为数组,再用 array_reverse() 和 implode() 组合:
$str = "PHP编程";
$chars = [];
for ($i = 0; $i < mb_strlen($str, 'UTF-8'); $i++) {
$chars[] = mb_substr($str, $i, 1, 'UTF-8');
}
echo implode('', array_reverse($chars)); // 输出:程编PHP避免常见错误
- 不要用 strrev() 处理中文、日文等 UTF-8 字符串
- 不要用 str_split() 直接拆分 UTF-8 字符串(它按字节切分)
- 循环索引从 mb_strlen() - 1 开始,不是 strlen() - 1











