$a = 'abcd'; 给出多种方法反转字符串
<?php
/**
* 问题: $a = 'abcd'; 给出多种方法反转字符串
*/
$a = 'abcd';
/**
* 使用PHP内置函数strrev(), 不支持反转带有中文的字符串
*
* @param $str
* @return string
*/
function rev1($str)
{
return strrev($str);
}
echo rev1($a);
/**
* 使用strlen()函数, 不支持反转带有中文的字符串
*
* @param $str
* @return string
*/
function rev2($str)
{
$len = strlen($str);
$res = '';
while ($len) {
$res .= $str[--$len];
}
return $res;
}
echo rev2($a);
/**
* 使用递归, 因为mb_substr()根据字符数进行截取操作, 所以该方法支持反转带有中文的字符串
*
* @param $str
* @return string
*/
function rev3($str)
{
$res = '';
if (strlen($str) > 0) {
$res = rev3(mb_substr($str, 1));
}
return $res . mb_substr($str, 0, 1);
}
echo rev3($a);