Home > PHP | 聞いて欲しい独り言 > PHPの恥ずかしい話

PHPの恥ずかしい話

PHPで配列(連想配列)のあるキーに関連付けられたデータが空かどうか、実は今まで以下のようにしていました。


error_reporting(E_ALL);

$test['key1'] = "val1";
if (array_key_exists('key1', $test) && !empty($test['key1'])) {
    echo "exist\\n";
} else {
    echo "empty\\n";
}

if (array_key_exists('key2', $test) && !empty($test['key2'])) {
    echo "exist\\n";
} else {
    echo "empty\\n";
}

なんでarray_key_existsをやっていたかというと、key1がない場合は初期化されていない変数へのアクセスになると思っていたからです。
例えば、上記でいきなり


if ($test['key2'] == null) {
}

とかやるとNoticeが出てきます。
しかし実は、isset()とかempty()って(関数ではなく)言語構造なためか別にいきなりやってもいいんですね。


if (isset($test['key2'])) {
}
if(empty($test['key2'])) {
}

Noticeでませんでした。愛の無知でした。
とりあえず今夜は、既存のソースを書き換えてから寝ることにします。
・・・$test[‘key2’]=”0″(文字列)のときにempty($test[‘key2’])がfalseを返す(PHP4)というのはどうかと思うけど。

以上

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://red-treasure.com/report/wp-trackback.php?p=60
Listed below are links to weblogs that reference
PHPの恥ずかしい話 from コスミー報告書[社外秘]

Home > PHP | 聞いて欲しい独り言 > PHPの恥ずかしい話

Search
Feeds
Meta
 合計:022976
 今日:0021 昨日:0110

Return to page top