Code Fix

中級strpos()が0を返すと if文でfalseと同じに扱われてしまう › パターン3

strpos()が0を返すと if文でfalseと同じに扱われてしまう

strpos()は文字列が先頭(添字0)で見つかった場合、戻り値の0を返します。

 1  <?php
 2  $url = "https://example.com";
 3  $pos = strpos($url, "https");
 4  if (______________) {
               ^
 5      echo "secure";
 6  } else {
 7      echo "not secure";
 8  }
出力: not secure期待: secure (エラーにはなりません)

空欄を埋めて実行を通す

広告
広告スロット(未設定)

strpos()が0を返すと if文でfalseと同じに扱われてしまう

if ($pos)のように真偽値として直接判定すると、0はfalseとして扱われるため、先頭で見つかったのに「見つからなかった」と誤判定します。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)