中級 › strpos()が0を返すと if文でfalseと同じに扱われてしまう › パターン1
strpos()が0を返すと if文でfalseと同じに扱われてしまう
strpos()は文字列が先頭(添字0)で見つかった場合、戻り値の0を返します。
1 <?php 2 $haystack = "hello world"; 3 $pos = strpos($haystack, "hello"); 4 if ($pos ___ false) { ^ 5 echo "not found"; 6 } else { 7 echo "found"; 8 }
出力: not found期待: found (エラーにはなりません、実際は先頭=添字0で見つかっています)
空欄を埋めて実行を通す
strposは"hello"を添字0で見つけたため0を返します。==で比較すると0とfalseは等しいとみなされ、見つかっているのに「not found」と誤判定します。型まで比較する===が必要です。
次の問題