참조 없이 객체를 복사하는 방법은 무엇입니까?
P粉805922437
P粉805922437 2023-08-24 10:51:49
0
2
443
<p>PHP5 OOP 객체는 기본적으로 참조로 전달된다는 사실이 잘 문서화되어 있습니다. 이것이 기본값이라면 참조 없이 복사하는 기본값이 아닌 방법이 있는 것 같은데, 그건 어떻습니까? ? </p> <pre class="brush:php;toolbar:false;">함수 refObj($object){ foreach($object as &$o){ $o = ''로 변경됩니다' $o; } $객체를 반환합니다; } $obj = 새로운 StdClass; $obj->x = 'x'; $obj->y = 'y'; $x = $obj; print_r($x) // 객체(stdClass)#1 (3) { // ["x"]=> 문자열(1) "x" // ["y"]=> 문자열(1) "y" // } // $obj = refObj($obj); // 이렇게 할 필요가 없습니다. refObj($obj); // $obj는 참조로 전달됩니다. print_r($x) // 객체(stdClass)#1 (3) { // ["x"]=> string(1) "이것은 x로 변경됩니다." // ["y"]=> string(1) "이것은 y로 변경됩니다." // }</pre> <p>이 시점에서는 <code>$x</code>가 원본 <code>$obj</code>일 것으로 예상했지만 물론 그렇지 않습니다. 쉽게 할 수 있는 방법이 있나요? 아니면 이런 코드를 작성해야 하나요</p>
P粉805922437
P粉805922437

모든 응답(2)
P粉038161873

객체를 복사하려면 Object Clone一个>을 사용해야 합니다.

귀하의 예에서 이를 수행하려면:

으아아아

객체는 __clone() 定义自己的克隆동작을 사용할 수 있으며 이로 인해 예상치 못한 동작이 발생할 수 있으므로 이 점을 염두에 두시기 바랍니다.

P粉713846879

으아악

그러면 다음과 같아야 합니다:

으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿