第5章 組み込み関数 / 第3回 模擬試験
PHPの`str_contains()`、`str_starts_with()`、`str_ends_with()`関数(PHP8.0以降)に関する次の記述のうち、誤っているものはどれか。
`str_contains()`は、文字列が指定した部分文字列を含むかを判定する。
`str_starts_with()`は、文字列が指定した文字列で始まるかを判定する。
`str_ends_with()`は、文字列が指定した文字列で終わるかを判定する。
これらの関数はPHP7.4以前から存在する古い関数である。
正解
解説
`str_contains()`、`str_starts_with()`、`str_ends_with()`はPHP 8.0で新たに追加された関数です。「PHP7.4以前から存在する古い関数」という記述は誤りです(PHP8.0より前は、`strpos($haystack, $needle) !== false`のような書き方で代用していました)。
他の選択肢が正しい理由は次の通りです。
・`str_contains($haystack, $needle)`は、`$haystack`が`$needle`を含むかどうかを`bool`で判定します。
・`str_starts_with($haystack, $needle)`は、`$haystack`が`$needle`で始まるかどうかを判定します。
・`str_ends_with($haystack, $needle)`は、`$haystack`が`$needle`で終わるかどうかを判定します。
例:
```
var_dump(str_contains('Hello, World!', 'World')); // true
var_dump(str_starts_with('Hello', 'He')); // true
var_dump(str_ends_with('Hello', 'lo')); // true
```
(参照: 独習PHP 第4版 第5章 組み込み関数 5.2.9節 p.177)