[support] PHP 5.3 upgrade problems
larry at garfieldtech.com
larry at garfieldtech.com
Thu Oct 15 19:20:03 UTC 2009
andy baxter wrote:
> Pierre Rineau wrote:
>> It depends on the parameter type.
>>
>> If your parameter is a primitive type (int, string, float, bool) or an
>> array, value will be used (this will be a local variable into your
>> function), but if you pass a class (stdClass or any other) then it will
>> be a reference, whether you wrote the & or not.
>>
> This is what I was thinking it might be. I've programmed in other
> languages before but not PHP, and I didn't know how PHP deals with
> things like this.
>
> Thanks,
>
> andy
Not entirely true, actually. In PHP 5, objects are split into the
actual object and a handle to that object. The handle passes by value,
but the object itself is still the same one being referenced. So it
behaves about 93% of the time as if objects pass by reference. There
are edge cases where that's not true, however, so don't get into the
"object => pass by ref" trap. It's only "true" 93% of the time. :-)
--Larry Garfield
More information about the support
mailing list