在 PHP 中,可以使用下面提到的方法反转给定的字符串。
方法 1:使用迭代
在下面的示例中,字符串名为MyString 使用ReverseString()函数进行反转。
创建两个变量 l 和 r,它们最初指向字符串的第一个和最后一个字符。
如果 l 小于 r,则 MyString 索引 l 和 r 处的字符 交换了。交换后,l 加 1,r 减 1,直到交叉。
最后,MyString将包含初始字符串的反转值。
<?php
function ReverseString($MyString) {
$l = 0;
$r = strlen($MyString) - 1;
while($r > $l){
//交换索引l和r处的字符
$c = $MyString[$l];
$MyString[$l] = $MyString[$r];
$MyString[$r] = $c;
$l++;
$r--;
}
echo "$MyString \n";
}
ReverseString("Hello World");
ReverseString("Programming is fun");
ReverseString("Reverse this string");
?>
上面的代码将给出以下输出:
dlroW olleH
nuf si gnimmargorP
gnirts siht esreveR
方法2:使用递归
使用递归函数也可以实现上述结果。考虑下面的示例:
<?php
function ReverseString($MyString) {
if(($MyString == null) || (strlen($MyString) <= 1)) {
echo ($MyString);
} else {
echo ($MyString[strlen($MyString) - 1]);
ReverseString(substr($MyString, 0,
(strlen($MyString) - 1)));
}
}
ReverseString("Hello World");
echo "\n";
ReverseString("Programming is fun");
echo "\n";
ReverseString("Reverse this string");
echo "\n";
?>
上面的代码将给出以下输出:
dlroW olleH
nuf si gnimmargorP
gnirts siht esreveR
方法3:以相反的顺序打印字符串
通过以相反的顺序打印字符串也可以实现同样的效果。考虑下面的示例:
<?php
function ReverseString($MyString) {
$last = strlen($MyString) - 1;
for($i = $last; $i >= 0; $i--) {
echo $MyString[$i];
}
echo "\n";
}
ReverseString("Hello World");
ReverseString("Programming is fun");
ReverseString("Reverse this string");
?>
上面的代码将给出以下输出:
dlroW olleH
nuf si gnimmargorP
gnirts siht esreveR
方法 4:使用内置函数 - strrev()
PHP 内置函数 strrev() 也可用于反转字符串。考虑下面的示例:
<?php
echo strrev("Hello World")."\n";
echo strrev("Programming is fun")."\n";
echo strrev("Reverse this string")."\n";
?>
上面的代码将给出以下输出:
dlroW olleH
nuf si gnimmargorP
gnirts siht esreveR