不使用任何内置函数反转字符串

<?php
declare(strict_types=1);
ini_set('display_errors', 'On');
error_reporting(-1);

/**
 * 反转字符串
 *
 * @param string $string 待反转的原始字符串
 * @return string 反转后的字符串
 */
function str_rev(string $string): string
{
    $rev = ''; // 保存反转后的字符串

    // 拼接PHP_EOL常量,用于下面的while循环判断是否到达字符串结尾,否则需要使用isset()来判断
    $str = $string . PHP_EOL;

    // 获取字符串长度
    $strlen = 0;
    while (true) {
        if ($str[$strlen] === PHP_EOL) {
            break;
        }

        $strlen++;
    }

    // 构造反转后的字符串
    for ($i = $strlen - 1; $i >= 0; $i--) {
        $rev .= $str[$i];
    }

    return $rev;
}

$str = '9876543210';
$rev = str_rev($str);
echo "$str ===> $rev" . PHP_EOL; // 9876543210 ===> 0123456789

Copyright © 2024 码农人生. All Rights Reserved