【PHP】strposのfalseチェックについて
strposで検索対象文字列に検索文字列がない場合、falseが返ってくる。では、falseチェックはどうするか。個人的には、厳密な比較演算子を使うのがベターだと思う。
<? php $result = strpos('test', 'niku'); if($result === FALSE){ echo 'FALSEです。'; exit(); }
他のPHPの関数を使った場合の挙動はどうなるか。
例えば、emptyを使ってstrposの結果が入った変数をチェックした場合。strposは、検索文字列が検索対象文字列の最初にあった場合には0を返すので、emptyのチェック結果はtrueになる。
<? php // $resultに0は入り、emptyの結果はtrueになる $result = strpos('test', 't'); if(empty($result)){ echo 'FALSEです。'; exit(); }
ちなみに、PHP マニュアルにも似たようなことが書かれている。 PHP: strpos - Manual