> 백엔드 개발 > PHP 튜토리얼 > PHP의 범위 운영자를 다시 구현합니다

PHP의 범위 운영자를 다시 구현합니다

Christopher Nolan
풀어 주다: 2025-02-15 09:36:12
원래의
211명이 탐색했습니다.
sitepoint 멋진 기사 권장 사항 : 개선 된 PHP 범위 운영자 구현 이 기사는 itepoint에서 저자의 승인과 함께 재현됩니다. 다음 컨텐츠는 Thomas Punt가 작성하고 PHP 범위 운영자의 개선 된 구현 방법을 소개합니다. PHP 내부에 관심이 있고 좋아하는 프로그래밍 언어에 기능을 추가한다면 이제 배우기에 좋은시기입니다!

이 기사는 독자가 소스 코드에서 PHP를 구축 할 수 있다고 가정합니다. 그렇지 않은 경우 먼저 PHP 내부 메커니즘 책의 "Building PHP"장을 읽으십시오.

이전 기사에서 (팁 : 읽었는지 확인하십시오) PHP에서 범위 운영자를 구현하는 방법을 보여주었습니다. 그러나 초기 구현이 가장 좋지 않으므로이 기사는 이전 구현을 개선하는 방법을 탐색하는 것을 목표로합니다.

이 기사를 교정 해 주신 Nikita Popov에 다시 한 번 감사드립니다!

키 포인트

Re-Implementing the Range Operator in PHP Thomas Punt는 PHP의 레인지 연산자를 상환하여 Zend 가상 머신에서 계산 논리를 옮기고 일정한 표현식의 맥락에서 범위 운영자를 사용할 수 있습니다.

이 재 구현은 컴파일 시간 (문자류의 경우) 또는 런타임 (동적 피연산자)에서 계산할 수 있습니다. 이를 통해 OPCache 사용자에게 약간의 이점이있을뿐만 아니라 범위 운영자와 함께 일정한 표현식 기능을 사용할 수 있습니다.
재 구현 프로세스에는 Lexer, Parser, Compilation Stage 및 Zend Virtual Machine을 업데이트하는 것이 포함됩니다. 어휘 분석기 구현은 동일하게 유지되는 반면 파서 구현은 이전 부분과 동일합니다. 컴파일 단계는 바이너리 작업을 처리하는 데 필요한 논리가 포함되어 있으므로 Zend/Zend_compile.c 파일을 업데이트 할 필요가 없습니다. Zend Virtual Machine은 런타임에 Zend_Range Opcode의 실행을 처리하도록 업데이트되었습니다.

이 시리즈의 세 번째 부분에서 Punt는이 운영자를 과부하시키는 방법을 설명 하여이 구현을 구축 할 계획입니다. 이를 통해 객체를 피연산자로 사용하고 문자열에 적절한 지지대를 추가 할 수 있습니다.

이전 구현의 단점

초기 구현은 Zend_Range Opcode를 실행할 때 런타임에 순수하게 계산을 수행하도록하는 Zend Virtual Machine에 범위 연산자의 모든 논리를 배치합니다. 이는 문자 그대로의 오페라의 경우 계산을 컴파일 시간으로 전송할 수 없으며 일부 기능이 단순히 작동하지 않음을 의미합니다.

이 구현에서는 Zend Virtual Machine에서 Range Operator Logic을 이동하여 컴파일 타임 (리터럴 피연산자) 또는 런타임 (동적 피연산자)에서 계산을 수행 할 수 있습니다. 이를 통해 Opcache 사용자에게 약간의 이점이있을뿐만 아니라 더 중요한 것은 범위 운영자와 함께 일정한 표현식 기능을 사용할 수 있습니다.

위 내용은 PHP의 범위 운영자를 다시 구현합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿