PHP uses copy-on-write for by-value passes. So, if you are not changing
the passed string inside the function there is no copy done on a
pass-by-value and this is actually faster than doing a pass-by-reference.
But, I'd suggest doing ".$myvar." (ie. break out of the quoted string and
concat the var.)
-Rasmus
On Sun, 17 Nov 2002, Peter Beckman wrote:
> I'm building some software that will be passing a string variable which
> could potentially be up to 125K bytes (characters) in size.
>
> I know that passing a reference to the variable will be much more efficient
> than copying the variable:
>
> copying, as I understand it:
>
> foo($var)
> [...later...]
> function foo ($myvar) { $sql = "insert into table (this) values (\"$myvar\")"; }
>
> passing by reference, not copying:
> foo($var)
> [...later...]
> function foo (&$myvar) { $sql = "insert into table (this) values (\"$myvar\")"; }
>
> A few questions:
> 1. Am I correct that PHP makes a copy of the variable when I call the
> function with the variable, since the scope will not be global in
> the function (unless I declare it such)?
> 2. Will I be saving some CPU cycles and memory by passing by reference?
> 3. Is my pseudo code above correct? If not, can you show me how one
> might pass by reference correctly?
>
> I've tested both pieces of code, but can't determine if there is a
> speed/memory difference, and I don't actually have 125K in data handy!
>
> Thanks,
> Peter
> ---------------------------------------------------------------------------
> Peter Beckman Systems Engineer, Fairfax Cable Access Corporation
> [EMAIL PROTECTED] http://www.purplecow.com/
> ---------------------------------------------------------------------------
>
>
> --
> PHP Database Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php