2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PHPにおけるfalsyな値

Posted at

どうでも良い前書き

3年間Rubyを触り続けてきましたが転職を機にPHPで開発することになりました。
良し悪しではなく、Rubyはfalsenilのみがfalsyな値ですが、PHPでは違うみたい。
Rubyのこのシンプルな判定に慣れているのでPHPでの判定にまだ慣れず、ここにメモしておきます。

PHPでfalsyと評価される値一覧

以下がfalsyらしいです。
でも、文字列の"0.0"trueみたいです。

値の種類 値の例 説明
boolean false 明示的な偽
整数 0 数値のゼロ
浮動小数点数 0.0 浮動小数点のゼロ
文字列 "", "0" 空文字や "0" は falsy
配列 [] 空配列
NULL null NULL 値
未定義変数 $undefined isset() でチェックが必要
空のオブジェクトプロパティ等 $obj->notExists 存在しないプロパティなど

falsyかどうかをチェックする方法

1. if (!$value):もっとも基本的な使い方

これはシンプルですね。
ただ、$valueが定義されていなければ、PHPは警告を出すみたいです。

$value = "";

if (!$value) {
  echo "falsyです";
}

2. empty() を使う:未定義変数も安全にチェック可能

empty() は未定義変数にも警告を出さずfalseと評価します。
falsyな値全般を安全に扱いたいならempty()が楽ですかね。

if (empty($value)) {
  echo "falsyまたは未定義です";
}

3. (bool) キャスト

こうすると値をboolに変換してfalseと比較するんですね。
ただ未定義変数の場合警告を出してくるみたいです。

if ((bool)$value === false) {
    echo "明示的に falsy です";
}

最後に

なんだか今年はPHP(Laravel)、Dart(Flutter)を頑張る必要がありそうです。
ゆっくりやっていきます。

2
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?