Referans olmadan bir nesnenin bir kopyasını yapmak nasıl?

0 Cevap php

Bu iyi belgelenmiş olduğunu PHP5 OOP objects are passed by reference varsayılan. Bu varsayılan ise, nasıl, hiçbir referans ile kopyalamak için bir hayır varsayılan yolu var gibi geliyor bana?

function refObj($object){
    foreach($object as &$o){
        $o = 'this will change to ' . $o;
    }

    return $object;
}

$obj = new StdClass;
$obj->x = 'x';
$obj->y = 'y';

$x = $obj;

print_r($x)
// object(stdClass)#1 (3) {
//   ["x"]=> string(1) "x"
//   ["y"]=> string(1) "y"
// }

// $obj = refObj($obj); // no need to do this because
refObj($obj); // $obj is passed by reference

print_r($x)
// object(stdClass)#1 (3) {
//   ["x"]=> string(1) "this will change to x"
//   ["y"]=> string(1) "this will change to y"
// }

Bu noktada ben $x orijinal $obj olmak istiyorum, ama tabii öyle değil. Bunu yapmak için veya bir şey like this kod zorunda herhangi bir basit bir yolu var mı

0 Cevap