読者です 読者をやめる 読者になる 読者になる

YAMAGUCHI::weblog

土足で窓から失礼いたします。今日からあなたの息子になります。 当年とって92歳、下町の発明王、エジソンです。

NULL?0?

PHP

PHPをやっていると文字列と文字と数字の扱いがすごく適当になる。もちろんそれがメリットになっている部分も大いにあるんだけど、きちんと意識しておかないと痛い目に遭う。
ある変数に0をつっこむ場合と空の文字列("")をつっこむ場合が両方あって、それぞれの場合を条件分岐で行おうと思った場合に0はきちんと'0'で対応させないといけない。つまり

if($a == '0'){
  hoge();
} elseif($a == ""){
  fuga();
} else {
  foo();
}

これをしなかったがために0と""が同じ物と判断され、おかしなところで躓いてしまった。要注意。