[PHP-users 5806] PHP 4.0 / 4.1 の isset() の相違
Naofumi Kondoh
php-users@php.gr.jp
Fri, 01 Mar 2002 23:25:08 +0900
ソフト工房の近藤です。
PHP 4.0.4pl1 と PHP 4.1.2 の isset で、Warning の有無に
相違がありましたので、ご参考までにご報告します。
相違は Warning の有無だけで、実行結果は同じです。
# アプリを直さなくっちゃ(^_^;;
プロパティーが配列で且つ指定の添字の要素が存在するかを
チェックするのに、
if (isset($test->dd[0]))
を使用して PHP 4.0 では Warning は出なかったのですが、
PHP 4.1.2 では、Warning が出るようになりました。
is_array を追加して次のようにすれば、4.1.2 でも Warning
が出なくなります。
if (is_array($test->dd) && isset($test->dd[0]))
(参考:テストコード)
-----------------------------------------------
<?php
error_reporting(E_ALL);
class testclass { var $dd = ""; }
$test = new testclass();
if (isset($test->dd[0])){
echo "(A) 真 \n";
}else{
echo "(A) 偽 \n";
}
if (is_array($test->dd) && isset($test->dd[0])){
echo "(B) 真 \n";
}else{
echo "(B) 偽 \n";
}
?>
-----------------------------------------------
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
(株)ソフト工房 近藤直文 Email: nkon@shonan.ne.jp
《 PostgreSQL+PHPソースコードジェネレーターデモGPL版 》
http://www.SOFTKOUBOU.co.jp/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/