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

$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 라이브러리 167
77 매직해시(MAGIC HASHES) 취약점 22
76 Trait 21
75    Trait 24
74 Overloading 19
73    Overloading 19
72 Type hinting/Type 설정하기/Throw error 20
71    Type hinting/Type 설정하기/Throw error 19
70    Type hinting/Type 설정하기/Throw error 19
69 object clone 21
68    object clone 22
67 serialize / unserialize 21
66 spl_autoload_register(오토로드) 21
65 window에서 composer깔기 20
64 Exception/try/throw/catch 22
63 Error의 종류 19
62    Error의 종류 19
61    Error의 종류 17
60 eval 19
59 Magic_methods 20
58    Magic_methods 46
 1  2  3  4  
 
개인홈페이지 덤벙닷컴은 프로그래머와 디자이너위한 IT커뮤니티 공간입니다.
Copyright ⓒ www.dumbung.com. All rights reserved.