ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

PHP:empty()で少し悩む

データベースから値を読み込んで、1だったら会員、0だったら非会員のラジオボタンを設定しようとしました。
必ずデータベースに値があるとは限らなかったので、empty()で判定して、empty()の戻り値がfalseならラジオボタンに設定することにしました。
PHP: empty - Manual

プログラムを実行すると、データベースの値が0の場合に、思ったとおりの動作をしません。
どうしてかと改めてempty()のマニュアルを確認すると、

次のような値は空であるとみなされます。

"" (空文字列)
0 (整数 の 0)
0.0 (浮動小数点数の 0)
"0" (文字列 の 0)
NULL
FALSE
array() (空の配列)

とあり、0も空であると判定され、trueが戻ってきます。

f:id:AJYA:20180731060348p:plain
unsplash-logoFabian Grohs

会員を1、非会員を0としたままでは成立させることができないと判断し、今回は会員を1、非会員を2とすることで、回避することにしました。