第5章 組み込み関数 / 第2回 模擬試験

PHPの文字列関数に関する次の記述のうち、誤っているものはどれか。

`strlen()`はマルチバイト文字を正しく1文字として数える。 正解
`str_replace()`は文字列内の指定した文字列を置換する。
`trim()`は文字列の前後の空白を除去する。
`strpos()`は指定した文字列が最初に出現する位置を返す。
解説
`strlen()`は文字列の「バイト数」を返す関数です。UTF-8で日本語などのマルチバイト文字を扱う場合、1文字が2〜4バイトになるため、`strlen()`は見た目の文字数と一致しません。文字数を正しく数えたい場合は`mb_strlen()`を使う必要があります。 他の選択肢が正しい理由は次の通りです。 ・`str_replace($search, $replace, $subject)`は、`$subject`内の`$search`を`$replace`に置換します。 ・`trim()`は文字列の前後にある空白文字(および既定のトリム対象文字)を除去します。 ・`strpos($haystack, $needle)`は`$needle`が`$haystack`内で最初に出現する位置(0始まり)を返します。見つからない場合は`false`を返します。 例: ``` echo strlen('あいう'); // 9(UTF-8で1文字3バイト×3文字) echo mb_strlen('あいう'); // 3 ``` (参照: 独習PHP 第4版 第5章 組み込み関数 5.2節 文字列関数 p.166〜189)