php 如何实现strrev
实现字符串反转的方法
在 PHP 中,字符串反转可以通过多种方式实现。以下是几种常见的方法:
使用内置函数 strrev()
PHP 提供了内置函数 strrev(),可以直接反转字符串:
$string = "Hello World";
$reversed = strrev($string);
echo $reversed; // 输出 "dlroW olleH"
手动实现字符串反转
如果不使用内置函数,可以通过循环或递归实现字符串反转:

方法 1:循环遍历
function reverseString($str) {
$reversed = '';
for ($i = strlen($str) - 1; $i >= 0; $i--) {
$reversed .= $str[$i];
}
return $reversed;
}
$string = "Hello World";
echo reverseString($string); // 输出 "dlroW olleH"
方法 2:递归实现

function reverseString($str) {
if (strlen($str) <= 1) {
return $str;
}
return reverseString(substr($str, 1)) . $str[0];
}
$string = "Hello World";
echo reverseString($string); // 输出 "dlroW olleH"
使用 array_reverse() 和 implode()
可以将字符串拆分为数组,反转数组后再合并:
$string = "Hello World";
$chars = str_split($string);
$reversed = implode('', array_reverse($chars));
echo $reversed; // 输出 "dlroW olleH"
处理多字节字符(如 UTF-8)
对于多字节字符(如中文),strrev() 可能无法正确反转,需要使用 mb_ 函数:
function mb_strrev($str, $encoding = 'UTF-8') {
$reversed = '';
$length = mb_strlen($str, $encoding);
for ($i = $length - 1; $i >= 0; $i--) {
$reversed .= mb_substr($str, $i, 1, $encoding);
}
return $reversed;
}
$string = "你好世界";
echo mb_strrev($string); // 输出 "界世好你"
注意事项
- 内置函数
strrev()是最简单高效的方式,但仅适用于单字节字符。 - 多字节字符(如中文、日文)需要使用
mb_系列函数处理。 - 手动实现时需注意性能问题,尤其是递归方式可能不适合长字符串。






