PHPの存在判定には注意しよう。特にLaravelでbladeを書いているとき
やってしまったミス
商品に価格が設定されているなら価格を表示する、みたいなテンプレートを書くとき、以下のように書いていました。(ざっくり)
<?php @if ($price) {{ $price }} 円 @endif
基本的に問題ないのですが、価格が0円の場合、これだと表示されません。
"0"
(文字列の0)は真偽値に変換するとfalseだからですね。
<?php (bool) "0" > false
正解
仕様によりますが、価格が設定されていないならnull
にしてあげて、以下のようにするのが良いと思います。
<?php @if (!is_null($price) {{ $price }} 円 @endif