참조 계산에 대해 PHP를 테스트할 때 변수에 zval 컨테이너가 있는 것을 보았습니다. 여기에는 두 가지 속성이 포함되어 있습니다. 하나는 refcount이고 다른 하나는 is_ref
으아아아배열의 참조 횟수를 테스트할 때 결과가 예상대로 반환됩니다
array (refcount=1, is_ref=0),
array (size=2)
'의미' => (refcount=1, is_ref=0),string 'life' (length=4)
'숫자 ' => (refcount=1, is_ref=0),int 42
하지만 피험자를 테스트할 때는요. 질문이 있습니다?
으아아아class1:
(refcount=1, is_ref=0),
object(A)[1]
private 'a1' => (refcount=2, is_ref=0),null
public 'a2' => ;(참조 개수=2, is_ref=0),null
이유를 잘 모르겠나요? 이게 2가 될까요? 1 대신. PHP 배열과 같은 대신. 예상 재회수는 1
인 것으로 보입니다.그리고 PHP 공식 매뉴얼에도 있습니다. 참조 카운팅에 관한 적합 유형에 대한 설명입니다.
php 참조 횟수
배열 및 객체와 같은 복합 유형의 경우 상황이 좀 더 복잡합니다. 스칼라 유형의 값과 달리 배열 및 객체 유형의 변수는 해당 멤버 또는 속성을 자체 기호 테이블에 저장합니다.
으아악 으아악 으아악 으아악