이 글의 예시는 메모리 내 PHP 객체의 존재 형태를 분석한 것입니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
<?php class Person{ public $name; public $age; } $p1 = new Person(); $p1->name = "小明"; $p1->age=80; $p2=$p1; $p2->age=85; echo $p2->name; echo $p1->age; ?>
(1) $p1은 메모리 주소에 해당하며, 0x123이라고 가정합니다. ($p1과 주소는 스택 영역에 저장되어 있으며 이는 사전을 찾을 때의 인덱스와 같습니다.)
(2) 메모리 주소의 인덱스를 통해 힙 영역을 찾습니다. 힙 영역에는 "Xiao Wang", "80" 등의 데이터가 저장됩니다
(3) $p2 = $p1, 실제로 $p1의 메모리 주소 0x123이 $p2로 전달됩니다. 힙 영역의 $name 및 $age 속성은 변경되지 않습니다. 즉, 다시 복사되지 않습니다. 따라서 $p2->age=85를 변경하면 $p1->age 값도 변경됩니다.
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.