프로그래밍 언어/PHP

PHP 배열의 복사본을 다른 배열로 옮기는 방법

Rateye 2021. 7. 9. 10:30
728x90
반응형

 

질문 : PHP 배열의 복사본을 다른 것으로 만드는 기능이 있습니까?

PHP 배열의 복사본을 다른 것으로 만드는 기능이 있습니까?

PHP 배열을 복사하려고 몇 번 불에 탔습니다. 개체 내부에 정의 된 배열을 외부 전역에 복사하고 싶습니다.

답변

PHP에서 배열은 복사로 할당되고 객체는 참조로 할당됩니다. 이는 다음을 의미합니다.

$a = array();
$b = $a;
$b['foo'] = 42;
var_dump($a);

산출 :

array(0) {
}

이므로:

$a = new StdClass();
$b = $a;
$b->foo = 42;
var_dump($a);

수율 :

object(stdClass)#1 (1) {
  ["foo"]=>
    int(42)
    }
    

배열과 똑같이 작동하는 객체 인 ArrayObject 와 같은 복잡함으로 인해 혼란 스러울 수 있습니다. 그러나 객체이기 때문에 참조 의미가 있습니다.

편집 : @AndrewLarsson은 아래 주석에서 요점을 올립니다. PHP에는 "참조"라는 특수 기능이 있습니다. C / C ++와 같은 언어의 포인터와 다소 비슷하지만 완전히 동일하지는 않습니다. 배열에 참조가 포함 된 경우 배열 자체가 복사본으로 전달되는 동안 참조는 여전히 원래 대상으로 확인됩니다. 물론 그것은 일반적으로 원하는 행동이지만 언급할만한 가치가 있다고 생각했습니다.

출처 : https://stackoverflow.com/questions/1532618/is-there-a-function-to-make-a-copy-of-a-php-array-to-another
728x90
반응형