PHPで文字列を反転させる

            <div class="section">

来週の新卒研修コードレビューのテーマらしい。

ぱっと思いついた方法だけ載せてとく。

<?php
//strrevは使わない
$str = 'Hello. Nice to meet you.';
echo str_reverse($str);
echo str_reverse2($str);
function str_reverse($str) {
$_str = '';
for ($i = 1;$i <= strlen($str);$i++) $_str .= substr($str, $i * -1, 1);
return $_str;
}
function str_reverse2($str) {
$_str = '';
for ($i = strlen($str) - 1;$i >= 0;$i--) $_str .= $str[$i];
echo $_str;
}

swapでやる方法。

<?php
$str = 'Hello. Nice to meet you.';
echo str_reverse3($str);
function str_reverse3($str) {
$forword  = 0;
$backword = strlen($str) - 1;
while ($forword < $backword) {
list($str[$forword], $str[$backword]) = array($str[$backword], $str[$forword]);
$forword++;
$backword--;
}
return $str;
}

for, foreach, while などのループをつかわない

<?php
$str = 'Hello. Nice to meet you.';
echo str_reverse4($str);
function str_reverse4($str, $re_str = '') {
if (strlen($str) === 0) return $re_str;
$rest_str = substr($str, 0, -1);
$re_str  .= substr($str, -1);
return str_reverse4($rest_str, $re_str);
}