[PHP-users 5812] Re: PHP 4.0 / 4.1 の isset()の相違
Naofumi Kondoh
php-users@php.gr.jp
Sat, 02 Mar 2002 13:00:47 +0900
ソフト工房の近藤です。
Yasuo Ohgaki wrote:
>
> 大垣です。
>
> Naofumi Kondoh wrote:
...略...
> ついでに、isset()のバグも紹介します。
>
> <?php
>
> $arr = array('foo' => 'bar');
> if (isset($arr['foo']['var'])) {
> echo "OK";
> }
> else {
> echo "NG";
> }
> ?>
>
> バグのためOKを表示します :(
$arr['foo'][ ] なら、添字が何でも Warning を
ださずに、何かゴミを表示するみたいですね。
$arr = array('foo' => 'bar');
if (isset($arr['foo']['bar'])) {
echo "OK <br>";
echo "arr['foo'] is {$arr['foo']} <br>";
echo "arr['foo']['bar'] is {$arr['foo']['bar']} <br>";
echo "arr['foo']['HOGE'] is {$arr['foo']['HOGE']} <br>";
echo "arr['HOGE'] is {$arr['HOGE']} <br>"; //これは Warning。
} else {
echo "NG <br>";
}
-------- 実行結果 -------- PHP 4.1.2 ----
OK
arr['foo'] is bar
arr['foo']['bar'] is b
arr['foo']['HOGE'] is b
Warning: Undefined index: HOGE in /jj/vvv/php4/isset.aa.php on line 18
arr['HOGE'] is
...略...
> 4.2.0では修正されるべきですが、間に合わないかも、、、
大した問題ではないけど、4.0.4pl1 で、デバッグ完了
した筈のアプリで、4.1.2 で山のように Warning がで
たのでちょっとびっくりしただけ。
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
(株)ソフト工房 近藤直文 Email: nkon@shonan.ne.jp
《 PostgreSQL+PHPソースコードジェネレーターデモGPL版 》
http://www.SOFTKOUBOU.co.jp/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/