⊗ppOpMgGP 88 of 107 menu

PHP OOP에서 매직을 통한 속성 접근

다음으로 살펴볼 매직 메서드는 __get입니다. 이 메서드는 비공개 또는 보호된 속성의 값을 읽으려고 할 때 발동합니다.

어떤 클래스에 __get 메서드를 구현하면, 존재하지 않거나 숨겨진 속성에 대한 모든 접근은 이 메서드에 의해 처리될 것입니다.

이때 PHP는 자동으로 요청된 속성의 이름을 이 메서드의 첫 번째 매개변수로 전달하며, 이 메서드가 반환하는 값은 접근이 발생한 속성의 값으로 인식됩니다.

아직 어떻게 작동하는지 잘 이해가 되지 않을 수 있으므로, 실제 예를 통해 살펴보겠습니다. 비공개 속성과 공개 속성을 가진 다음과 같은 Test 클래스가 있다고 가정해 봅시다:

<?php class Test { public $prop1 = 1; // 공개 속성 private $prop2 = 2; // 비공개 속성 } ?>

우리 클래스에 매직 메서드 __get를 추가해 보겠습니다. 우선은 단순히 접근이 발생한 속성의 이름을 반환하도록 하겠습니다:

<?php class Test { public $prop1 = 1; private $prop2 = 2; public function __get($property) { return $property; // 속성 이름을 반환합니다 } } ?>

만든 매직 메서드의 작동을 확인해 봅시다. 세 가지 유형의 속성에 접근해 보겠습니다: 공개 속성, 비공개 속성, 그리고 존재하지 않는 속성:

<?php $test = new Test; // 공개 속성에 접근: echo $test->prop1; // 1을 출력합니다 - 즉, 속성 값 // 비공개 속성에 접근: echo $test->prop2; // 'prop2'를 출력합니다 - 속성 이름 // 존재하지 않는 속성에 접근: echo $test->prop3; // 'prop3'를 출력합니다 - 속성 이름 ?>

보시다시피, 우리의 매직 메서드는 비공개 속성과 존재하지 않는 속성에 대한 접근에 반응하지만, 공개 속성에 대한 접근은 무시합니다. 공개 속성들은 이전과 동일하게 작동합니다.

한국어
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
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부