Re: Static Class Member References

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




David Harkness wrote:
> Ah, so assigning a reference to a variable already holding a reference
> changes that variable's reference only in the same way that unsetting a
> reference doesn't unset the other variables referencing the same thing, yes?
> 
> $a = 5;
> $b = &$a;
> print $a;
>> 5
> unset($b);  // does not affect $a
> print $a;
>> 5
> 
> // and according to Mike's previous message
> $b = &$a;
> $c = 10;
> $b = &$c;  // does not affect $a
> print $a
>> 5
> 
> That makes a lot of sense. If it didn't work this way there would be no easy
> way to untangle references. In the case of
> 
>     foreach($array as $key => &$value) { ... }
> 
> the first value in the array would continuously be overwritten by the next
> value.
> 
> 1. $value gets reference to first array value
> 2. on each step through the loop, the first array value would be overwritten
> by the next value in the loop since $value is forever tied to it by the
> initial reference assignment.
> 
> That would be a Bad Thing (tm).
> 
> Thanks for the clarification, Mike.
> 
> David
> 

The big "aha" moment for was when realizing that when assigning a
reference to a variable you only change its reference and not any other
variable that may also have shared the same reference.  Yuck that's a
mouth full.  This happened when Mike said, " NOTE: since we are
assigning a new reference to a variable which is already a reference,
ONLY this reference changes".

Yes, i agree with you David (on both of your points).  Thanks for the
example using the unset.  This further clarified/solidified my
understanding.

Now, with this new understanding, I also wish to comment that if i
assign (without reference) $this, i don't have to be too worried about
bloating the memory, b/c i'm only assigning/copying the identifer or
*handle* and not the actual object itself.

In case, someone reads this in the archive the link is:
http://php.net/manual/en/language.oop5.references.php

Mike, thank you a ton.

Regards.
`

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux