fetus Diary

2008/06/23(月) - isset

<?php
  class TestObject { }

  $data = array('zero'  => 0,
                'one'   => 1,
                'alpha' => 'abcd',
                'true'  => true,
                'false' => false,
                'obj'   => new TestObject(),
                'null'  => null);
  $keys = array_keys($data);
  $keys[] = 'unknown';

  foreach($keys as $key) {
    printf('isset($data[\'%s\']) = %s' . "\n", $key, isset($data[$key]) ? 'true' : 'false');
  }
?>
[fetus@KOTORI ~]$ php hoge.php
isset($data['zero']) = true
isset($data['one']) = true
isset($data['alpha']) = true
isset($data['true']) = true
isset($data['false']) = true
isset($data['obj']) = true
isset($data['null']) = false
isset($data['unknown']) = false

isset は値が null の時は false を返すらしい。ちょっとハマった。仕事で。

# マニュアルに書いてあるケド

昔は array_key_exists 使ってたんだけどな…。なんで isset 使うようになったんだっけ…?

# しかし、isset が関数じゃなくて言語構造ってのがイマイチ気持ち悪い。C/C++ の sizeof だって似たようなもんですがー。

コメント

コメントはありません。

名前
メール
コメント

※HTML タグは使えません。HTTP URL には自動リンクが張られます。

Captcha
画像から読み取れる文字を入力: