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
반응형
'프로그래밍 언어 > PHP' 카테고리의 다른 글
PHP 세션이 이미 시작되었는지 확인하는 방법 (0) | 2021.07.13 |
---|---|
PHP에서 작은 따옴표와 큰 따옴표 문자열의 차이점 (0) | 2021.07.12 |
PHP의 enumerations (0) | 2021.07.07 |
객체 배열에 대한 PHPDoc 유형 (0) | 2021.07.06 |
PHP에서 암호를 해싱하기 위해 bcrypt를 사용하는 방법 (0) | 2021.07.05 |