gcc
컴파일러는 -S
옵션을 이용해 어셈블리어로 실제 C 언어의 내부 동작을 살펴 볼 수 있다. 하지만 PHP는 기본적으로 그러한 기능이 없으나, pthreads
모듈을 만든 Joe Watkins가 만든 explain이라는 모듈을 통해 어느 정도 PHP 내부 동작을 파악 할 수 있게 됐다.
일단 explain
확장 모듈을 설치해야 한다.
|
|
설치 후 자신의 환경에 맞춰 explain.ini
파일을 만들고 아래 내용을 넣는다.
|
|
만약 phpbrew를 사용한다면 간단히 phpbrew ext enable explain
명령으로 모듈을 활성화 할 수 있다. 다음 명령으로 explain
모듈이 활성화 됐는지 확인한다.
|
|
explain
모듈 사용법은 explain-master 안에 있는 explain.php
를 통해 타겟 php 파일 또는 디렉토리를 지정하면 된다.
적당한 디렉토리를 하나 만들고 예제로 쓸 두 파일을 만든다.
|
|
|
|
그리고 아래 명령을 실행한다.
|
|
실행을 하고 나면 echo_vs_print.html
파일이 생긴다. 브라우징에 필요한 자바스크립트 파일을 복사해온다.
|
|
웹브라우저로 echo_vs_print.html
파일을 열어보자.
두 파일의 내용을 비교해보면 print
는 반환값을 가지고 있기 때문에 1개의 명령을 더 실행하는 것을 알 수 있다.
아쉬운 점은 Zend 명령으로 변환된 것을 보여주기 때문에 동적으로 처리되는 경우까지 완벽히 파악하기는 어렵다는 것이다. 하지만 PHP 내부 동작을 이해하는데 큰 도움이 될뿐더러 특히 확장 모듈을 개발하려는 개발자에게는 더욱 유용하리라 예상된다.