Object clone
°´Ã¼¸¦ cloneÇϱâÀü¿¡ ±×³É ´Ù¸¥ À̸§ ÁöÁ¤ÇÏ¸é ¾î¶»°Ô µÇ´ÂÁö¸¦ »ìÆìº¸ÀÚ
±×³É °´Ã¼ÀÇ º¯¼ö¸¦ copyÇϸé, µÑÀº °ªÀ» °øÀ¯Çϱ⠶§¹®¿¡ ÇϳªÀÇ °ªÀÌ ¹Ù²î¸é ´Ù¸¥ °Íµµ ¹Ù²ï´Ù.
¸¸¾à °´Ã¼¸¦ µ¶¸³ÀûÀ¸·Î °´Ã¼¸¦ º¹»çÇϰí ÀÌÈÄ¿¡´Â °ªÀ» °øÀ¯ÇÏÁö ¸øÇϵµ·Ï ÇϱâÀ§Çؼ± cloneÀ» ÀÌ¿ëÇÏ¸é µÊ
Shallow clone
À§¿Í °°ÀÌ cloneÀ» ÀÌ¿ëÇØ¼ °³Ã¼ÀÇ °ªÀ» clone ÇÒ ¶§, ¸¸¾à °ª Áß¿¡ °´Ã¼°¡ ÀÖ´Ù¸é(ÇÏÀ§¿¡), ÇÏÀ§ °´Ã¼ÀÇ °ªÀº µ¶¸³ÀûÀ¸·Î cloneµÇ´Â°Ô ¾Æ´Ï¶ó, °ª ÀÚü°¡ cloneµÇ±â ¶§¹®¿¡ Çϳª¸¦ ¹Ù²Ù¸é ´Ù¸¥ Çϳªµµ ¹Ù²ï´Ù
Deep clone(magic method __clone())
magic method __cloneÀ» ÀÌ¿ëÇϸé, µ¶¸³ÀûÀ¸·Î °´Ã¼µµ cloneÇÒ ¼ö ÀÖ´Ù.
__cloneÀº cloneµÉ ¶§ ½ÇÇàµÇ´Â magic methodÀÌ´Ù
À§¿¡ user¿¡ function __clone¸¸ Ãß°¡ÇØÁÖ¸é µÊ
$this ÀÌ¿ëÇØ¼ clone object ÀÚµ¿ÈÇϱâ
$this¿¡ Á¤ÀÇµÈ °ªÀÌ ¹è¿·Î ÀúÀåµÇ´Â °É ÀÌ¿ëÇØ¼, foreach¹®À¸·Î ÀÚµ¿ÈÇÑ´Ù
object(User)#3 (3) { ["name"]=> string(3) "Tim" ["age"]=> int(27) ["object"]=> object(Job)#4 (1) { ["jobname"]=> string(3) "cop" } } // ÀÌ·±½ÄÀ¸·Î $this¿¡ ÀúÀå µÊ