Jump to content

Archived

This topic is now archived and is closed to further replies.

dptr1988

Trouble with Call-time pass-by-reference

Recommended Posts

I'm wanting to pass an array by reference to a function. But I get a warning.

Here is the warning:
[code][06-Jul-2006 11:13:30] PHP Warning:  Call-time pass-by-reference has been deprecated - argument passed by value; 
If you would like to pass it by reference, modify the declaration of copy_array(). 
If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. 
However, future versions may not support this any longer.  in C:\FTB\dptr1988.mooo.com\htdocs\walk.php on line 137[/code]

Here is the function declaration:
[code]<?php
function copy_array($source, &$dest)
{

foreach($source as $key => $value)
{
  $dest[$key] = $value;
}

}
?>[/code]

Here is how I call the function:
[code]<?php
copy_array($newstats, &$stats);
?>[/code]

I've read the manual and my code seems correct but I still get that warning. Is my function definition wrong?

Thanks

Share this post


Link to post
Share on other sites
Call like this, withoutthe "&"

[code]copy_array($newstats, $stats);[/code]

However, you might find it simpler to

[code]$stats = $newstats;[/code]

to copy the array

Share this post


Link to post
Share on other sites
Thank you barand. It works now.

The reason I made the copy_array() function is that $newstats only contains some of the items that $stats contains. So it's just updating some of the items in $stats rather than copying the whole array

Thanks again

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.