データの存在チェックのときにissetを使ってハマってしまったのでメモしときます
以下の配列に対してcomputerというkeyがあるかを探します
$category =
array(9) {
[“”]=>
null
[“domestic”]=>
null
[“world”]=>
null
[“economy”]=>
null
[“entertainment”]=>
null
[“sports”]=>
null
[“computer”]=>
null
[“science”]=>
null
[“local”]=>
null
}
チェックするやり方として
isset($category[‘computer’]);
か
array_key_exists(‘computer’,$category);
を使おうとしますが
これissetだとfalseが返ってきます
なぜならisset は「未定義変数 且つ NULL」の場合に FALSE を返すからです
なのでissetを使うなら以下のようにnullではなく空文字を入れるようにする
| array(9) { | |
| [“”]=> | |
| string(0) “” | |
| [“domestic”]=> | |
| string(0) “” | |
| [“world”]=> | |
| string(0) “” | |
| [“economy”]=> | |
| string(0) “” | |
| [“entertainment”]=> | |
| string(0) “” | |
| [“sports”]=> | |
| string(0) “” | |
| [“computer”]=> | |
| string(0) “” | |
| [“science”]=> | |
| string(0) “” | |
| [“local”]=> | |
| string(0) “” | |
| } |

コメント