views:

56

answers:

3

Just wondering about the performance impact of copying very large php variables. For example say $arr is an enormous array. If I do $arr2 = $arr, is this a deep copy or is $arr2 merely a pointer to $arr like it is in Java? Thanks in advance.

+6  A: 

$arr2 = $arr creates a deep copy. But the actual copying only happens when $arr2 is modified -- PHP utilizes copy-on-write.

If you want a "pointer" instead of a copy, use $arr2 =& $arr, which makes $arr2 a reference to $arr.

Frank Farmer
+1  A: 

If you use $arr2 = &$arr ;

It will reference of the $arr .

pavun_cool
+1  A: 

The general rule in PHP is don't create references unless you need the functionality they provide. References will only make the code slower otherwise.

http://www.php.net/manual/en/language.references.php

konforce