PHP 내부의 속성에 액세스하는 방법은 무엇입니까?
P粉518799557
2023-09-05 18:50:40
<p>이 문서를 기반으로 후속 조치를 취하세요: https://www.php.net/manual/en/언어.oop5.references.php</p>
<인용문>
<p>자주 언급되는 PHP 객체지향 프로그래밍의 핵심은 "객체는 기본적으로 참조로 전달된다"는 점입니다. 이것은 완전히 정확하지 않습니다. </p>
</인용문>
<인용문>
<p>PHP에서 개체 변수는 개체 자체를 값으로 포함하지 않습니다. 여기에는 개체 접근자가 실제 개체를 찾을 수 있도록 하는 개체 식별자가 포함되어 있습니다. </p>
</인용문>
<p>이것이 실제로 어떻게 작동하나요? 예를 들어 C++에서 화살표 연산자는 암시적으로 포인터를 역참조한 다음 개체 변수 자체에서 액세스한 것처럼 속성에 액세스하는 것처럼 보입니다. </p>
<p>제가 이해한 방법은 다음과 같습니다.</p>
<pre class="brush:php;toolbar:false;">obj->prop
(*obj).prop // 위 줄과 동일</pre>
<p>정말 깔끔해 보이네요. 두 경우 모두 속성 호출은 개체 변수 주소와 속성 오프셋의 합계입니다. </p>
<p>하지만 이것이 PHP에서는 어떻게 작동할까요?
문서에서는 포인터가 메모리 주소를 저장하지 않고 "객체 식별자"를 저장한다고 제안합니다. PHP에서 속성에 액세스하는 것은 매우 추상적인 프로세스입니까, 아니면 객체 식별자를 메모리 주소로 확인한 다음 C++/Java 등과 유사하게 액세스합니까? </p>
이것은 매우 추상적인 프로세스이며 구문의 유사성이 코드가 C/C++처럼 작동한다는 의미는 아닙니다. 코드를 자세히 들여다보면 내부적으로 어떻게 작동하는지 확인할 수 있습니다.