coppermine-gallery.com/forum

Support => cpg1.4.x Support => Older/other versions => cpg1.4 plugins => Topic started by: GuidoR13 on July 14, 2006, 12:57:41 PM

Title: Photo_Shop Plugin: Call by Reference...
Post by: GuidoR13 on July 14, 2006, 12:57:41 PM
Hello, really good the Photo_Shop Plugin! Really! Thanks a lot.

My version is: photo_shop_jul_01_2006.zip

Nevertheless I get some annoying PHP warnings with drepacted call by reference. Seems to be a PHP.INI setting, which I can not change.

I'm no PHP programmer, but I changed in photo_shop_checkout.php:
Line 50 & 83:
photoshop_prep_data(&$shop_array_cd, &$shop_array_photos)
to
photoshop_prep_data($shop_array_cd, $shop_array_photos);

Line 100:
function photoshop_prep_data($shop_array_cd, $shop_array_photos)
to
function photoshop_prep_data(&$shop_array_cd, &$shop_array_photos)

and all works fine...

Guido
Title: Re: Photo_Shop Plugin: Call by Reference...
Post by: Stramm on July 14, 2006, 01:31:47 PM
The & before the argument is to make it be passed by reference. If you remove it then I'm nearly sure that the plugins functionality suffers
Title: Re: Photo_Shop Plugin: Call by Reference...
Post by: Nibbler on July 14, 2006, 01:59:27 PM
They are still being passed by reference.
Title: Re: Photo_Shop Plugin: Call by Reference...
Post by: GuidoR13 on July 14, 2006, 02:20:52 PM
Yep, they are passed by reference.

But the "by reference" ist declared with the functions definition and not while function call. This is the "correct" style, as far as I understand the PHP docu (anyway I'm not a PHP programmer):

http://de3.php.net/manual/en/language.references.pass.php
QuoteNote that there's no reference sign on function call - only on function definition. Function definition alone is enough to correctly pass the argument by reference. In recent versions of PHP you will get a warning saying that "Call-time pass-by-reference" is deprecated when you use a & in foo(&$a);.