[PHP-users 14030] Re: E_ALLのときの
おかむら
php-users@php.gr.jp
Mon, 17 Mar 2003 14:12:24 +0900
元の目的からは外れるので余談になりますが、
スーパーグローバルでない変数であれば、
設計によっては変数に明示的にNULLが入っている場合もあります。
この場合はisset()はfalseを返すため使えません。
例えばデータベースが値としてNULLを返す場合がそれです。
NULLが入っている変数を初期化済みと見なしたい場合は
array_key_exists()を使うとよいです。
// example
$pg = pg_connect( 'dbname=hoge' );
$qr = pg_query( $pg,'SELECT NULL as n');
$rs = pg_fetch_array( $qr );
print_r( $rs );
print 'isset :' . isset( $rs['n'] ) . "\n"; // false
print 'isnull :' . is_null( $rs['n'] ) . "\n"; // true
print 'keyexists:' . array_key_exists( 'n', $rs ) . "\n"; // true
------- ------- ------- ------- ------- ------- -------
おかむら <okamura@ntciis.ne.jp>