[PHP-users 20494]Re: PHP3とPHP4の違いについて

Seto seto @ cii.gr.jp
2004年 2月 20日 (金) 15:40:47 JST


 Setoです。
そもそも対応策は決められているようなので問題ないのですが、
後々の情報としてちょっと気になったので

>PHP3とPHP4では、
>配列の要素のcountが微妙にちがうということですね。

これ「count()」は同じで
問題なのは
PHP3では配列の添え字として存在しないキー$iを指定して
   echo $testarry[$i]["AAA"];
とすると 配列に要素が追加されてしまうことだと思います。


簡単なテストコードと実行結果を載せます。
<?php
// php3 script
$testarray = array('0','1','2','3','4','5' );
echo count( $testarray );
if ( isset( $testarray['0'] ) ) echo 'aaa';
unset( $testarray['0'] );
if ( isset( $testarray['0'] ) ) echo 'bbb';
echo count( $testarray );

echo $testarray['0']['0'];
//echo $testarray['0']; では問題なし

echo count( $testarray );
if ( isset( $testarray['0'] ) ) echo 'ccc';
?>

結果
6
aaa
5
6 // この直前で追加されているらしい
ccc

#この現象は元の配列の次元?に関係なく発生します。
以上




PHP-users メーリングリストの案内