LoginSignup
0
0

More than 5 years have passed since last update.

empty($var)で"0"が空と判定される仕様でバグを埋め込んだ戒め

Last updated at Posted at 2018-09-06

php初心者の例に漏れずempty($var)で"0"がfalseになるのを知らず、
バグを埋め込んでしまったのでメモと戒めを残しておこうと思う。

やりたかったこと

変数の空チェック

  • 以下の3つだけNGにしたかった
    • $var
    • $var = "";
    • $var = null;

埋め込んだバグ

  • 以下の2つもNGになってしまった
    • "0"
    • 0

修正前

if (empty($var) {
  return true; // こっちに入る
} else {
  return false;
}

修正後

変数に値が入っているかチェックしたかっただけなのでこうすればOK

// $varが未定義かNULLか空文字ならtrueを返す
if (is_null($var) || $var ==="") {
  return true;
} else {
  return false;
}

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0