โดยพื้นฐานแล้ว PHP เป็นภาษาที่แปล (Interpreted) แต่ PHP จะถูกคอมไพล์เป็นไบต์โค้ด (Bytecode) ระหว่างทาง ซึ่งจะถูกแปลโดยเครื่องยนต์ Zend Engine ในขณะรันไทม์
หน้าที่ของ PHP Compiler
- แปลงโค้ดเป็นไบต์โค้ดที่เครื่องยนต์รันไทม์สามารถใช้งานได้
- จัดการฟังก์ชัน ชื่อ และชื่อคลาส
- สร้างตารางสัญลักษณ์ (Symbol Table)
หน้าที่ของ PHP Interpreter
- อ่านไบต์โค้ดทีละบรรทัดและนำไปประมวลผล
- จัดการข้อยกเว้น (Exception) ในขณะรันไทม์