Jump to content

clone creates a shallow copy or deep copy?


johnmerlino1

Recommended Posts

I came across the PHP clone method. Does this clone first level fields and methods or does it also do deep copying e.g. copying references to those fields. For example, a field may be an array. Does it make a copy of the actual array or does it refer to the same array position in memory, so if the original changes, then the copy's changes as well?

It works the same way as assignment: scalars and arrays are deep-copied while objects and resources (even within arrays) get "references". Not real references but copies of the class/resource pointer, if you will.

 

Technically they're all "references" to start with but PHP does a real copy when you attempt to change the value, so practically speaking it's a copy.

Archived

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

×
×
  • Create New...

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.