yes, true!
try this patch:
> if (strcmp($name->firstName, "homer") == 0) {
> echo "changing homer to marge<br>";
> $name->firstName = "marge";
$names[key($names)]->firstName = "marge";
good luck,
Elias
"Jesse Vitrone" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> Tried to post this to the news group before, but I'm having trouble
getting
> to my news server from work - hopefully I'm not posting a duplicate.
>
>
> I think I'm seeing the problem I'm seeing because I'm getting a copy of a
> var instead of a reference to it, but I'm not sure the best we to get
around
> this problem.
>
> In my little sample script, I've got an array of objects. When I use
> foreach to loop through the array and make a change to an item, it doesn't
> change the object in the array, just the var that I have while I'm in the
> foreach loop.
>
> What's the right way to loop through this array if I really want to change
> homer's name to marge in this example? The way it is now, I see my echo
> saying that I'm changing the name, but when I do the second var_dump, it's
> the same as the first var_dump.
>
> Thanks in advance,
> Jesse
>
> <?php
>
> class Name {
> var $firstName;
> var $lastName;
>
> function Name($first, $last) {
> $this->firstName = $first;
> $this->lastName = $last;
> }
> }
>
> $names[] = new Name("joe", "shmo");
> $names[] = new Name("billy", "bob");
> $names[] = new Name("homer", "simpson");
>
> ?>
>
> <html>
> <body>
> <?php echo var_dump($names) ?>
> <br>
> <?php
> foreach ($names as $name) {
> if (strcmp($name->firstName, "homer") == 0) {
> echo "changing homer to marge<br>";
> $name->firstName = "marge";
> break;
> }
> }
> ?>
> <?php echo var_dump($names) ?>
>
> <br>
> </body>
> </html>
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php