[PHP-users 5811] Re: PHP 4.0 / 4.1 の isset() の相違

Yasuo Ohgaki php-users@php.gr.jp
Sat, 02 Mar 2002 12:34:46 +0900


大垣です。

Naofumi Kondoh wrote:
> ソフト工房の近藤です。
> 
> PHP 4.0.4pl1 と PHP 4.1.2 の isset で、Warning の有無に
> 相違がありましたので、ご参考までにご報告します。
> 相違は Warning の有無だけで、実行結果は同じです。
> # アプリを直さなくっちゃ(^_^;;

ついでに、isset()のバグも紹介します。

<?php

$arr = array('foo' => 'bar');
if (isset($arr['foo']['var'])) {
   echo "OK";
}
else {
   echo "NG";
}
?>

バグのためOKを表示します :(

>  
> プロパティーが配列で且つ指定の添字の要素が存在するかを
> チェックするのに、
>     if (isset($test->dd[0]))
> を使用して PHP 4.0 では Warning は出なかったのですが、
> PHP 4.1.2 では、Warning が出るようになりました。
> is_array を追加して次のようにすれば、4.1.2 でも Warning
> が出なくなります。
> 

4.2.0では修正されるべきですが、間に合わないかも、、、

-- 
Yasuo Ohgaki
yohgaki@dd.iij4u.or.jp

__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!  http://bb.yahoo.co.jp/