【PHP】文字列と数字の比較

PHPは変数の型を自動変換するから、ときには思いもよらず結果になります。
今回はcsvファイルの中のデータをDBに入れる作業がありました。
「0」の文字列がcsvファイルにありましたが、「0」のままではなく、空の文字列としてDBに入れたくて、下記のソースコードを書きましたが、
結局、値のある(例えば、「タイプ」)ものまで、空の文字列でDBに入れてしまいました。
1 2 3 4 5 6 | $type = ""; $typeInput = "タイプ"; if ($typeInput != 0) { $type = $typeInput; } var_dump($type);// string(0)"" |
文字列との比較なら、「0」が文字列であることを明示的示す必要があります。
1 2 3 4 5 6 | $type = ""; $typeInput = "タイプ"; if ($typeInput != '0') { $type = $typeInput; } var_dump($type);// 今回は空の文字列ではない |
ちなみに、PHPには形を変換する関数も用意されています。
例えば、intvalとかboolvalなどがあります。
変数の型を強制変換したい場合のみ、使ってください。
Author Profile

スターフィールド編集部
SHARE