PHP の面接の質問に遭遇しました。質問は非常に短く、非常に一般的ですが、間違いやすいのは次のとおりです
如何实现字符串翻转?
私の最初の反応は、もちろん strrev 関数でした。こんな簡単な質問がまだ面接にあるのは面倒だと思いませんか?しかし、インターネット上の答えを読んで、私は間違っていたことがわかりました~~~
strrev関数は英語では非常に便利で、文字列の反転を直接実現できますが、中国語ではどうですか? strstr関数やsubstr関数など、このような問題はたくさんあります。幸いなことに、PHP には、異なるエンコーディングや異なる言語間の変換などの操作を実装するための mb_ クラスの関数が用意されています。以下は、私が作成した PHP 文字列反転関数です (mb_class 関数は mb_string 実装を有効にする必要があります)。
<?PHP function getRev($str,$encoding='utf-8'){ $result = ''; $len = mb_strlen($str); for($i=$len-1; $i>=0; $i--){ $result .= mb_substr($str,$i,1,$encoding); } return $result; } $string = 'OK你是正确的Ole'; echo getRev($string); ?>
出力結果:
---------- PHP Debugger ---------- elO的确正是你KO Output completed (0 sec consumed) - Normal Termination