<span><span><span class="hljs-comment">// Complete example code</span></span><span>
</span><span><span class="hljs-variable">$example</span></span><span> = </span><span><span class="hljs-string">"PHP String Mirror"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Original: "</span></span><span> . </span><span><span class="hljs-variable">$example</span></span><span> . PHP_EOL;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Reversed: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">strrev</span></span><span>(</span><span><span class="hljs-variable">$example</span></span><span>) . PHP_EOL; </span><span><span class="hljs-comment">// Note: Multi-byte characters may cause issues</span></span><span>
</span></span>
In real projects, if multi-byte strings are involved, it is recommended to use multi-byte string functions to ensure correct reversal.
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">mb_strrev</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$string</span></span></span><span>, </span><span><span class="hljs-variable">$encoding</span></span><span> = </span><span><span class="hljs-string">'UTF-8'</span></span><span>) {
</span><span><span class="hljs-variable">$length</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_strlen</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-variable">$encoding</span></span><span>);
</span><span><span class="hljs-variable">$reversed</span></span><span> = </span><span><span class="hljs-string">""</span></span><span>;
</span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$length</span></span><span>-- > </span><span><span class="hljs-number">0</span></span><span>) {
</span><span><span class="hljs-variable">$reversed</span></span><span> .= </span><span><span class="hljs-title function_ invoke__">mb_substr</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-variable">$length</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-variable">$encoding</span></span><span>);
}
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$reversed</span></span><span>;
}
<p></span>$mbExample = "PHP String Mirror";<br>
echo "Multi-byte reversed: " . mb_strrev($mbExample) . PHP_EOL;<br>
</span>
This way, you can accurately reverse strings containing multi-byte characters, like Chinese, achieving a true mirrored output.