前提
背景
事象(やりたいこと)
よくあるお問い合わせフォームで
"ID"欄が空であった時、~する
というバリデーションを作るべく
if ( !empty ( $id ) ) {
エラー時の処理
}
とした。
困ったこと
このID欄に「0」を入力した場合、"ID"欄が未記入扱いでエラ―が発生
試したこと
1、is_nullを使う
コチラを参考。
今回は記事中テーブルの4行目のパターン。
$val = 0
- emptyではこれをtrueで返してしまう。これを「!」で否定しているので、
!empty ( $id )
自体がfalseとなり、未記入扱いになってしまう
逆の意味のis_nullを使うことにした。
結果
0を入力しても正常に処理が通った
所感
バリデーションに伴う、empty, isset, isset, などの「どれを使うか問題」は直感ではイメージしにくい。
実際に想定される入力をしてみて、想定通りの挙動をするか地道にテストするしかない。