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?

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.