2010-03-03 4 views
3

PHP 인터프리터에서 정적 (클래스) 필드 표현에 대해 알고 싶습니다.PHP 가속기 및 정적 필드

예를 들어 Java에서 클래스를로드하면 정적 필드가 해당 Class 객체와 연결됩니다. 즉, 동일한 JVM (및 동일한 클래스 로더)을 실행하는 두 응용 프로그램이 일종의 공유 전역 변수를 갖게됨을 의미합니다.)

PHP 가속기/opcode 캐싱을 사용하는 경우 궁금한 점은 무엇입니까? 방금 컴파일 된 바이트 코드 또는 VM 상태 (클래스 객체를 저장하는 책임)가 있습니까?

내가 등

PS 정적 필드/싱글 객체 요청 사이에 공유 두려워하기 때문이다 : 나는 정말 PHP 초보자, 그래서 나는 질문이 너무 바보 같은 경우 매우 죄송합니다 :)

답변

4

opcode 캐시는 아무 것도 변경하지 않습니다. 각 PHP 스크립트는 자체 프로세스 (또는 스레드)에 의해 실행되며 다른 스크립트와는 별도로 실행됩니다.

연산 코드 캐시만이 캐시 옵 코드 (자바의 바이트 코드의 PHP에 해당) 및도 저장하는 스크립트의 현재 실행 관련이없는 것 - 즉 없습니다 "VM 상태"모든 종류의.

PHP 스크립트가 실행될 때마다 변수가 하나의 버전으로 존재 함을 의미합니다. 스크립트가 여러 번 병렬로 실행 되더라도 마찬가지입니다. opcode 캐시를 사용하거나 사용하지 않아도 변경되지 않습니다.

+0

대단히 감사합니다. :) – Bubba88

+0

환영합니다 :-) * (opcode 캐싱이 중요한 것을 변경하면 큰 문제가됩니다) * –