>백엔드 개발 >PHP 튜토리얼 >PHP 기능 가비지 수집 메커니즘 1 - 참조 카운팅에 대한 기본 지식

PHP 기능 가비지 수집 메커니즘 1 - 참조 카운팅에 대한 기본 지식

黄舟
黄舟원래의
2017-02-04 09:46:451334검색

각 PHP 변수는 "zval"이라는 변수 컨테이너에 존재합니다. zval 변수 컨테이너에는 변수의 유형과 값 외에 2바이트의 추가 정보가 포함되어 있습니다. 첫 번째는 "is_ref"로, 이 변수가 참조 세트에 속하는지 여부를 식별하는 데 사용되는 부울 값입니다. 이 바이트를 통해 PHP 엔진은 일반 변수와 참조 변수를 구별할 수 있습니다. PHP에서는 사용자가 &를 사용하여 사용자 정의 참조를 사용할 수 있으므로 zval 변수 컨테이너에는 메모리 사용을 최적화하는 내부 참조 계산 메커니즘도 있습니다. 두 번째 추가 바이트는 "refcount"이며, 이 zval 변수 컨테이너를 가리키는 변수(기호라고도 함)의 수를 나타내는 데 사용됩니다. 모든 기호는 기호 테이블에 존재하며, 각 기호에는 범위(scope)가 있고, 기본 스크립트(예: 브라우저를 통해 요청된 스크립트)와 각 함수나 메서드에도 범위가 있습니다.
변수에 상수 값이 할당되면 다음 예와 같이 zval 변수 컨테이너가 생성됩니다.

예 #1 새 zval 컨테이너 만들기

<?php  
    $a = "new string";  
?>

위는 PHP 기능 가비지 컬렉션 메커니즘 1 - 참조 카운팅에 대한 기본 지식에 대한 내용입니다. 자세한 내용은 PHP 중국어 웹사이트(www.php.cn)를 참고하세요. !


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.