⊗ppOpAdPBR 23 of 107 menu

PHP OOP에서 객체 참조 전달

다음과 같은 User 클래스가 있다고 가정해 봅시다:

<?php class User { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } ?>

이 클래스의 객체를 생성합니다:

<?php $user = new User('john', 30); ?>

이제 다음과 같은 상황을 상상해 보세요: $user 변수의 값을 다른 변수, 예를 들어 $test에 할당하려고 합니다.

객체가 아닌 원시 타입, 즉 문자열, 숫자, 배열 등에 대해 이야기했다면, $test 변수에는 $user 변수 값의 사본이 들어갔을 것입니다.

이것은 나중에 어떤 변수를 변경하더라도 다른 변수의 값이 변경되지 않음을 의미합니다. 다음 예시를 살펴보겠습니다:

<?php $user = 1; $test = $user; // $test 변수에는 이제 1이 들어 있습니다 $test = 2; // $test 변수에는 이제 2가, $user에는 여전히 1이 들어 있습니다 ?>

객체의 경우는 다릅니다 - 다른 변수에 할당할 때 객체는 복사되지 않고 참조로 전달됩니다: 이는 이 두 변수 모두 값으로 동일한 객체를 가짐을 의미합니다. 이는 중요한 결과를 가집니다: 하나의 변수를 사용하여 객체의 일부 속성을 변경하면 두 번째 변수에서도 동일한 변경 사항이 나타납니다.

실제로 확인해 보겠습니다. 사용자 객체를 생성합니다:

<?php $user = new User('john', 30); ?>

객체를 다른 변수에 할당합니다:

<?php $test = $user; ?>

$test 변수에서 name 속성을 변경합니다.

<?php $test->name = 'eric'; ?>

공유된 객체가 변경되었는지 확인해 보겠습니다. $user 변수에서 name 속성을 출력합니다:

<?php echo $user->name; // 'eric'을 출력합니다! ?>

다음 속성을 가지는 Product 클래스를 만드세요: name, price.

Product 클래스의 객체를 생성하고, $product1 변수에 저장하세요.

$product1 변수의 값을 $product2 변수에 할당하세요. 두 변수가 동일한 객체를 참조하는지 확인하세요.

한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부