2012-05-02 7 views
12

저는 수년 이래로 PHP 개발자입니다.하지만 PHP가 변수와 그 유형을 어떻게 처리하는지에 대한 한 가지 세부 사항 만 알지 못합니다. PHP에서 - 이론적으로 - 같은 변수를 사용하여 정수, 문자열, 부울, 배열 등을 저장할 수 있습니다.PHP는 변수를 어떻게 처리합니까?

개인적으로 나는이 것을 싫어합니다. 방법 "가난 casted"프로그래밍,하지만 PHP는 저장하고 변수 및 형식을 관리 할 수 ​​궁금 해서요. 인터프리터가 C 변수를 생성하고 처리하는 것을 상상해 봅니다. 그러나 어떻게 해석 할 수는 없습니다.

감사합니다.

+0

아주 좋은데, 저는 C++ 프로그래머입니다. ne w를 PHP와 나는 너무 궁금해하고있다. –

+6

이 용어는 반드시 부정적인 것만이 아니기 때문에 "형체가 잘 못된"것이 아니라 "동적 유형화 된"것입니다. –

답변

12

PHP 변수는 변수가 저장할 수있는 모든 유형의 데이터 (예 : long, double, 문자열 포인터/길이) 사이의 합집합으로 구성된 "zval"구조로 저장됩니다 , 객체 포인터 ...), 그리고 그것이 어떤 유형인지 알려주고 참조 카운트를 추적하는 노동 조합 밖의 몇 개의 다른 필드들. 내가 올바르게 기억, PHP는 PHP에서 각 변수 메모리에 여러 변수를 시작합니다

http://devzone.zend.com/317/extension-writing-part-ii-parameters-arrays-and-zvals/

+0

매우 철저합니다! 고마워요. –

-1

:

에서이 몇 가지 추가 논의가있다

$test = 0; 

가 변환 ..

int test = 0; 
float test = 0; 
char test = 0; 
bool test = false; 
pointer test = null; 
... 
+0

사실이라면, 아무런 이유없이 엄청나게 비효율적입니다. 소환? – delnan

+0

duskwuff의 대답을 참조하십시오, 그것은 내 것보다 낫습니다. –

+0

그의 대답은 뭔가 다른 것을 말합니다. 사실, 그의 대답은 오직 하나의 변수가 존재 함을 의미합니다. – delnan

관련 문제