>  기사  >  백엔드 개발  >  강제 분할에 대한 PHP 기본 분석

강제 분할에 대한 PHP 기본 분석

藏色散人
藏色散人앞으로
2020-03-06 16:12:102712검색

학습을 하려면 그것이 무엇인지, 왜 그런지 알아야 하며, PHP와 관련된 기본 지식은 이러한 지식입니다.

추천: "PHP Training"

오늘은 강제 분할에 대한 지식에 대해 이야기하겠습니다. 간단히 말해서 강제 분할은 "참조 변수가 적극적으로 할당되기 전에 변수에 값이 할당되면 강제 분할이 발생합니다. ." ”

말하자면 좀 복잡하지만, 코드 분석을 살펴보겠습니다.

아래 코드를 보세요:

강제 분할에 대한 PHP 기본 분석

PHP: & 참조 기호에 조금 익숙하다면 출력이 gzchen, 8:30 in the evening, gzchen임을 알 수 있습니다.

그러면 위 코드의 기본 실행 프로세스를 살펴보겠습니다.

우리 모두 알고 있듯이 변수는 다음과 같은 구조입니다.

강제 분할에 대한 PHP 기본 분석

설명은 각 줄마다 작성됩니다. 이 파일은 PHP 소스 코드 Zend 디렉토리에 있는 zend.h입니다.

코드가 3[$name = 'eight Thirty in the evening'] 행으로 실행될 때 메모리의 구조는 다음과 같습니다:

강제 분할에 대한 PHP 기본 분석

코드가 4[name] 행으로 실행될 때, 구조 본문은 다음과 같습니다:

강제 분할에 대한 PHP 기본 분석

line: 5[<span style="font-size: 14px; line-height: 1.76em;">Misplaced &</span>name] 및 line: [$nameCopy = 'gzchen']으로 실행합니다. 다음과 같습니다.

강제 분할에 대한 PHP 기본 분석

여기, 여기, 바로 여기 A 강제 분열이 발생했습니다.

is_ref__gc[참조 속성]이 0->1일 때 refcont_gc>1이면 강제 분할이 발생합니다. 의사 코드는 다음과 같습니다.

강제 분할에 대한 PHP 기본 분석

이것은 강제 분할입니다. 값으로 할당된 변수는 참조되어 다시 할당됩니다. 값으로 할당된 변수는 구조(이 경우 $myName)로 분할됩니다.

이 원칙은 실제 개발에서는 기본적으로 사용되지 않지만 강제 분할은 대개 인터뷰에서 copy-on-write(소)와 함께 테스트됩니다.

프로그래밍과 관련된 더 많은 내용은 PHP 중국어 홈페이지 프로그래밍 입문 칼럼을 주목해주세요!

위 내용은 강제 분할에 대한 PHP 기본 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제