Skip to content

Latest commit

 

History

History
65 lines (51 loc) · 969 Bytes

给出多种方法反转字符串.md

File metadata and controls

65 lines (51 loc) · 969 Bytes

给出多种方法反转字符串

$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);