โดยพื้นฐานแล้ว PHP จะถูกตีความ แต่ PHP ถูกคอมไพล์ลงไปเป็นไบต์โค้ดระดับกลางที่จะถูกตีความโดยรันไทม์ของ Zend engine
คอมไพเลอร์ PHP มีหน้าที่
- แปลงรหัสเป็นไบต์โค้ดที่เอ็นจิ้นรันไทม์สามารถใช้ได้
- แก้ไขฟังก์ชัน ชื่อ และชื่อคลาส
- สร้างตารางสัญลักษณ์
ล่าม PHP ทำได้
- ผ่าน bytecode ทีละบรรทัดและดำเนินการ
- จัดการข้อยกเว้นรันไทม์