Date: 08/29/01
- Next message: rayn .: "[PHP] php running and installing problem"
- Previous message: Jean-Charles Preaux: "[PHP] DOM"
- In reply to: Brian White: "[PHP] I beleive I have found a bug....."
- Next in thread: Brian White: "Re: [PHP] I beleive I have found a bug....."
- Reply: Brian White: "Re: [PHP] I beleive I have found a bug....."
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
<Original message>
From: Brian White <bwhite <email protected>>
Date: Wed, Aug 29, 2001 at 04:01:06PM +1000
Message-ID: <4.3.2.20010829154702.00b62910 <email protected>>
Subject: [PHP] I beleive I have found a bug.....
> ... 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 <email protected>
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: php-general-unsubscribe <email protected>
> For additional commands, e-mail: php-general-help <email protected>
> To contact the list administrators, e-mail: php-list-admin <email protected>
</Original message>
<Reply>
Hai Brain,
I don't _think_ this is a bug (note: think). I haven't taken a very
good look at your code, but as I understand you believe that:
foreach ($data as $key)
delivers the same $key as in:
foreach ($data as $key=>$value)
Well... it doesn't. Check the manual on it. If you use the
foreach ($x as $y) construction, $y is the value... not the key.
Take a look at:
http://www.php.net/manual/en/control-structures.foreach.php
<Quote from PHP manual>
foreach(array_expression as $value)
foreach(array_expression as $key => $value)
</Quote from PHP manual>
I think this solves your problem...
</Reply>
--* R&zE:
-- »»»»»»»»»»»»»»»»»»»»»»»» -- Renze Munnik -- DataLink BV -- -- E: renze <email protected> -- W: +31 23 5326162 -- F: +31 23 5322144 -- M: +31 6 21811143 -- -- Stationsplein 82 -- 2011 LM HAARLEM -- Netherlands -- -- http://www.datalink.nl -- ««««««««««««««««««««««««
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: php-general-unsubscribe <email protected> For additional commands, e-mail: php-general-help <email protected> To contact the list administrators, e-mail: php-list-admin <email protected>
- Next message: rayn .: "[PHP] php running and installing problem"
- Previous message: Jean-Charles Preaux: "[PHP] DOM"
- In reply to: Brian White: "[PHP] I beleive I have found a bug....."
- Next in thread: Brian White: "Re: [PHP] I beleive I have found a bug....."
- Reply: Brian White: "Re: [PHP] I beleive I have found a bug....."
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

