PHP 파싱 프로세스

WBOY
풀어 주다: 2016-08-08 09:23:48
원래의
2031명이 탐색했습니다.

우리 모두는 PHP 스크립트의 실행 과정을 알고 있습니다. 먼저 Zend 엔진이 PHP 소스 코드를 opcode 시퀀스로 컴파일한 다음 Zend VM이 이를 해석하고 실행합니다. 일반적인 컴파일 과정은 어휘 분석과 구문 분석을 먼저 수행한 후 컴파일하는 것입니다. 구문 분석 후에는 구문 분석의 결과물인 Abstract Syntax Tree(Abstract Syntax Tree 또는 AST)라는 개념이 있으며, 이후의 컴파일 과정은 AST를 기반으로 컴파일러에 의해 수행됩니다.

하지만 PHP는 특별합니다. Zend 엔진은 AST를 생성하지 않고 구문 분석 후 직접 opcode를 생성합니다. 이렇게 하면 가장 큰 장점은 컴파일 속도가 빨라진다는 점이지만, 단점은 자유도를 잃고 최적화가 어렵고 컴파일러 논리가 복잡해진다는 점입니다. 특히 공식 PHP 웹사이트에는 PHP 컴파일 과정에서 AST의 도입을 논의하는 위키가 있습니다. 물론 구현하기가 매우 어렵습니다.

우리는 일반적으로 PHP의 컴파일 프로세스를 접하지 않지만 AST는 일상 작업에 유용한 도구입니다. 예를 들어, PHP_CodeSniffer, PHP_Depend, ZendStudio, PDT에서는 소스 코드를 분석해야 하며 어느 정도 AST의 도움이 필요합니다.

그림과 같이 PHP7과 php5의 컴파일 과정을 살펴보겠습니다


위 내용은 PHP 파싱 과정을 다양한 측면을 포함하여 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!