1
0

!empty()と??(Null合体演算子)とisEmpty()

Posted at

empty()

変数が存在し、かつ「空」でないことを確認する場合に使用

?? (Null合体演算子)

変数がnullでない場合のデフォルト値を設定する場合に使用

使い方

$foo = null;
$bar = $foo ?? 'default';
// $bar は 'default' になる

$foo = 'value';
$bar = $foo ?? 'default';
// $bar は 'value' になる

isEmpty()

コレクションが空であるかどうかを確認する

自分のしたミス1

$varが存在すればそのまま$varを表示
空であればdefaultを表示したいといったような場面があったのですが、
空文字列の時Null合体演算子は$varが存在するという判定になるらしくそのまま空文字列を表示してしまうというミスをしてしまいました。

$var = '';
$result = $var ?? 'default';
// $result は '' (空文字列) になる

解決策

Null合体演算子で省略せずに!empty()を使う

自分のしたミス2

$collection = collect([])

上記のような空のコレクションの際
コレクションオブジェクト自体は存在するため、empty()はfalseを返し、!empty()はtrueを返します。
よって自分の思い描いた実装ではなくなってしまいました。

解決策

isEmpty()やisNotEmpty()を使う。
コレクション自体が空であるか判定するものを最初から使うことを学びました。

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