PHP > LIBRARY > object clone
 
PHP
Library
Tip&Tech
Q&A
 
PHP Function
phpschool
그누보드
LIBRARY
  HOME > PHP > LIBRARY
 
object clone
작성일 : 19-01-08
조회 : 102  

$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에 저장 됨

function __clone(){ foreach($this as $key=>$value){ if(is_object($value)){ $this->$key = clone $this->$key; } } }

Serialize 이용한 Deep clone

<?php class Job{ public $jobname; function __construct($jobname){ $this->jobname = $jobname; } } class User{ public $name; public $age; public $object; function __construct($name, $age, $object){ $this->name = $name; $this->age = $age; $this->object = $object; } } $job = new Job("cop"); $user = new User("Tim", 27, $job); $user = serialize($user); $user1 = unserialize($user); //기존값 $user2 = unserialize($user); // clone 값 $user2->object->jobname = "Jake"; // clone 값 변경 var_dump($user1); // 기존값 echo("<br/><br/>"); var_dump($user2); // 변경 ?>

[출처] [php]Object clone|작성자 아아아


 
 

Total 77
번호 제   목 조회
공지 php 라이브러리 354
77 매직해시(MAGIC HASHES) 취약점 102
76 Trait 99
75    Trait 105
74 Overloading 106
73    Overloading 99
72 Type hinting/Type 설정하기/Throw error 102
71    Type hinting/Type 설정하기/Throw error 80
70    Type hinting/Type 설정하기/Throw error 103
69 object clone 105
68    object clone 103
67 serialize / unserialize 98
66 spl_autoload_register(오토로드) 91
65 window에서 composer깔기 96
64 Exception/try/throw/catch 102
63 Error의 종류 100
62    Error의 종류 102
61    Error의 종류 103
60 eval 104
59 Magic_methods 106
58    Magic_methods 119
 1  2  3  4  
 
개인홈페이지 덤벙닷컴은 프로그래머와 디자이너위한 IT커뮤니티 공간입니다.
Copyright ⓒ www.dumbung.com. All rights reserved.