2014-05-20 1 views
14

PHP는 컴파일 된 언어가 아니며 컴파일되지 않습니다. 그러나 나는 컴파일 타임에 PHP에서 일어나는 일들을 언급하는 책을 보았고, PHP 매뉴얼은 const happens at compile-time이라고 선언했다. PHP가 컴파일되지 않았기 때문에 PHP와 관련하여 컴파일 타임이란 용어는 어떻게 사용됩니까?PHP에서 컴파일 타임과 런타임은 무엇을 의미합니까?

"스크립트를 읽고 인터프리터 서브 루틴으로 변환 할 때"를 의미하는 것이라면 컴파일 타임과 런타임이라는 용어의 차이점은 무엇입니까?

+1

@Dagon Easy there. 이 연구의 결과로 OP 권리가 [this] (http://stackoverflow.com/questions/1514676)로 이어져 반대의 결과가 나타납니다. "컴파일"이라는 용어는 여기에 약간의 미묘함이 있습니다. –

+3

@Dagon 그 사람은 틀린 사람에게는 꽤 무례합니다. 인터프리터는 컴파일되지만 PHP 스크립트는 컴파일되지 않습니다. 자세한 내용은 여기를 참조하십시오. http://stackoverflow.com/questions/1514676/is-php-compiled-or-interpreted – TigerBear

+0

@Dagon 그렇게 간단하지가 않습니다. PHP를 전통적인 의미로 컴파일하는 것은 가능하지만, 그것은 결코 기본 제공 기능이 아닙니다. 편집으로 간주 될 수있는 해석 단계가 있습니다. 사실, 해석 자체는 어떤면에서 편집입니다. 그러나 중요한 차이가 있기 때문에 편집과 해석의 차이가 있습니다. – Cully

답변

5

PHP 소스 코드는 PHP Opcode로 컴파일되는 단계를 거칩니다. 이 아이디어는 다양한 플랫폼에서 구현되었으며, 특히 Java와 함께 사용되었습니다. 이론적으로 Opcode를 실행하는 별도의 "가상 시스템"런타임을 사용함으로써 언어 설계자는 언어를 이식성 문제와 분리 할 수 ​​있습니다.

더 오피 코드 캐싱, 컴파일 단계와 "런타임"단계입니다 구별하지만, 당신이 소개에 "가속/opscode 캐시와 일반적인 PHP 환경에서 these Opcodes in the manual

의 목록을 찾을 수 있습니다

"APC 또는 Zend Platform 제품과 같이 이러한 과정이 별도의 단계임을 알 수 있습니다.

일단 스크립트가 PHP Opscodes로 컴파일되면 소스에서 다시 컴파일 할 필요없이 캐시에서 실행할 수 있습니다.이 단축키는 성능을 크게 향상시킬 수 있습니다.

PHP의 "런타임"측면에 초점을 맞추면 PHP의 "해석 된"특성을 볼 수 있습니다. 런타임 환경이 필요하기 때문에 원시 언어로 실행되는 c/C++와 같은 컴파일 된/링크 된 언어 운영 체제 프로그램.

PHP의 경우 PHP 프로그램은 기본 운영 체제 프로그램 (또는 기본 OS 웹 서버 모듈)입니다.

Java가 "JVM (Java Virtual Machine)"내부에서 실행되는 것과 달리 PHP의 스크립트는 PHP 내부에서 실행되므로 운영 체제가 기본적으로 수행 할 작업의 특성을 포함하지 않습니다.

관련 문제