I beleive I have found a bug.....
| From: | Brian White | Date: | Wed, 29 Aug 2001 06:01:06 +0000 |
| Subject: | I beleive I have found a bug..... | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-64943@lists.php.net to get a copy of this message | ||
... I just thought I would see if anyone else can reproduce it!
Ok. The problem is in the following snippet of code. ( Note : this exmaple
is extremely contrived, and is the essence of a much more complicated
situation involving a function call from a class method... )
<?php
$data = array( "A" => "AA" , "B" => "BB", "C"=> "CC", "D"=> "DD", "E" => "EE" );
print "<pre>\n";
foreach ( $data as $key1=>$val1 )
{
// foreach ( $data as $key2=>$val2 )
foreach ( array_keys($data) as $key2 ) // <= PROBLEM IS HERE
{
if ( $key1 == $key2 )
print "<b>$key2</b>";
else
print $key2;
print " ";
}
print "\n";
}
print "</pre>";?> I beleive it should generate <pre> <b>A</b> B C D E A <b>B</b> C D E A B <b>C</b> D E A B C <b>D</b> E A B C D <b>E</b> </pre> Instead it generates <pre> <b>A</b> B C D E </pre> If I replace the problem line
foreach ( array_keys($data) as $key2 )with the alternate
foreach ( $data as $key2=>$val2 )then it works fine. I am using PHP 4.0.4pl1. Regs Brian White ------------------------- Brian White Step Two Designs Pty Ltd - SGML, XML & HTML Consultancy Phone: +612-93197901 Web: http://www.steptwo.com.au/ Email: bwhite@steptwo.com.au