ความแตกต่างที่สำคัญ: PHP เป็นภาษาสคริปต์ฝั่งเซิร์ฟเวอร์ที่มีการใช้งานหลักในการพัฒนาเว็บ อย่างไรก็ตามสามารถใช้เป็นภาษาโปรแกรมทั่วไปได้ PHP4 และ PHP5 เป็น PHP สองเวอร์ชัน PHP4 เปิดตัวเมื่อวันที่ 22 พฤษภาคม 2000 ในวันที่ 13 กรกฎาคม 2547 PHP5 เปิดตัว มันขับเคลื่อนโดย Zend Engine II มันเป็นการปรับปรุง PHP4 และรวมถึงคุณสมบัติใหม่ ๆ
PHP เป็นโอเพ่นซอร์ส, ฝั่งเซิร์ฟเวอร์, ภาษาสคริปต์ HTML แบบฝัง โดยทั่วไปสามารถทำงานใด ๆ ที่โปรแกรม CGI อื่นสามารถทำได้ แต่ส่วนใหญ่จะใช้เพื่อสร้างเว็บเพจแบบไดนามิก ข้อได้เปรียบหลักของมันคือมันเข้ากันได้กับฐานข้อมูลหลายประเภท นอกจากนี้ PHP สามารถพูดคุยข้ามเครือข่ายโดยใช้ IMAP, SNMP, NNTP, POP3 หรือ HTTP
PHP รวมความสามารถของอินเตอร์เฟสบรรทัดคำสั่งและสามารถใช้ในแอปพลิเคชันกราฟิกแบบสแตนด์อโลน คำสั่ง PHP สามารถฝังลงในเอกสารต้นฉบับ HTML โดยตรงแทนที่จะเรียกไฟล์ภายนอกเพื่อประมวลผลข้อมูล ในเอกสาร HTML สคริปต์ PHP จะอยู่ในแท็ก PHP พิเศษ เนื่องจากแท็กเหล่านี้โปรแกรมเมอร์สามารถสลับระหว่าง HTML และ PHP แทนที่จะต้องพึ่งพาโค้ดจำนวนมากเพื่อส่งออก HTML นอกจากนี้เนื่องจาก PHP ถูกเรียกใช้งานบนเซิร์ฟเวอร์ไคลเอนต์ไม่สามารถดูโค้ด PHP ได้
เมื่อวันที่ 13 กรกฎาคม 2004 ได้เปิดตัว PHP5 มันขับเคลื่อนโดย Zend Engine II เป็นการปรับปรุงที่เหนือกว่า PHP4 และรวมถึงคุณสมบัติใหม่ต่าง ๆ เช่นการสนับสนุนที่ดีขึ้นสำหรับการเขียนโปรแกรมเชิงวัตถุส่วนขยายของ PHP Data Objects (PDO) และการปรับปรุงประสิทธิภาพมากมาย ส่วนขยาย PDO กำหนดอินเทอร์เฟซแบบ Lightweight และสอดคล้องกันสำหรับการเข้าถึงฐานข้อมูล การรวมคงที่ล่าช้าถูกเพิ่มเข้ามาในเวอร์ชั่น 5.3 PHP5 ยังได้รับการออกแบบให้สามารถใช้งานร่วมกับ PHP รุ่นก่อนหน้าได้ด้วยดังนั้นจึงควรมีการทำงานเล็กน้อยในขณะที่แปลงจาก PHP4 เป็น PHP5
ความแตกต่างบางอย่างระหว่าง PHP4 และ PHP5:
- PHP5 ลบ register_globals อัญประกาศและเซฟโหมดออก นี่เป็นเพราะความจริงที่ว่า register_globals ได้เปิดช่องโหว่ด้านความปลอดภัยโดยจงใจให้ใช้การฉีดข้อมูลแบบรันไทม์และการใช้คำพูดเวทมนต์มีลักษณะที่ไม่แน่นอน
- PHP4 ขับเคลื่อนโดย Zend Engine 1.0 ในขณะที่ PHP5 ขับเคลื่อนโดย Zend Engine II
- PHP5 แทนที่คำพูดเวทมนต์ด้วยฟังก์ชั่น addlashes () เพื่อหลีกเลี่ยงตัวละคร
- PHP4 เป็นภาษาขั้นตอนมากกว่าในขณะที่ PHP5 เป็นแบบเชิงวัตถุ
- ใน PHP5 เราสามารถประกาศคลาสเป็นบทคัดย่อได้
- PHP5 ประกอบด้วยวิธีการและคุณสมบัติแบบคงที่
- PHP5 แนะนำฟังก์ชันพิเศษที่เรียกว่า __autoload ()
- PHP5 อนุญาตให้หนึ่งประกาศคลาสหรือเมธอดเป็น Final
- PHP5 แนะนำวิธีการเวทย์มนตร์มากมายเช่น __call, __get, __set และ __ toString
- ใน PHP5 มีความสามารถในการมองเห็น 3 ระดับ: สาธารณะส่วนตัวและได้รับการป้องกัน
- PHP5 แนะนำข้อยกเว้น
- ใน PHP4 ทุกอย่างถูกส่งผ่านโดยค่ารวมถึงวัตถุ ในขณะที่ PHP5 วัตถุทั้งหมดจะถูกส่งผ่านโดยการอ้างอิง
- PHP5 แนะนำอินเทอร์เฟซ วิธีการทั้งหมดที่กำหนดไว้ในส่วนต่อประสานต้องเป็นสาธารณะ
- PHP5 แนะนำระดับข้อผิดพลาดใหม่ที่กำหนดเป็น 'E_STRICT'
- PHP5 แนะนำส่วนขยายเริ่มต้นใหม่เช่น SimpleXML, DOM และ XSL, PDO และ Hash
- PHP5 แนะนำฟังก์ชั่นใหม่
- PHP5 แนะนำคำสำคัญที่สงวนไว้ใหม่
- PHP5 มีแนวคิด OOP เพิ่มเติมนอกเหนือจาก php4 เช่นตัวระบุการเข้าถึงการสืบทอดเป็นต้น
- PHP5 รวมถึงการสนับสนุนที่ดีขึ้นของระบบการจัดการเนื้อหาปัจจุบัน
- PHP5 รวมถึงการลดการใช้ RAM
- PHP5 แนะนำการรักษาความปลอดภัยที่เพิ่มขึ้นจากการโจมตีช่องโหว่ในสคริปต์ PHP
- PHP5 แนะนำการเขียนโปรแกรมที่ง่ายขึ้นผ่านฟังก์ชั่นและส่วนขยายใหม่
- PHP5 แนะนำส่วนขยาย MySQL ใหม่ที่ชื่อว่า MySQLi สำหรับนักพัฒนาที่ใช้ MySQL 4.1 และใหม่กว่า
- ใน PHP5, SQLite ได้ถูกรวมเข้ากับ PHP
- PHP5 แนะนำส่วนขยาย SOAP ในตัวใหม่ล่าสุดสำหรับการทำงานร่วมกันกับบริการบนเว็บ
- PHP5 แนะนำส่วนขยาย SimpleXML ใหม่สำหรับการเข้าถึงและจัดการ XML เป็นวัตถุ PHP ได้อย่างง่ายดาย นอกจากนี้ยังสามารถเชื่อมต่อกับส่วนขยาย DOM และในทางกลับกัน
- ใน PHP5 สตรีมได้รับการปรับปรุงอย่างมากรวมถึงความสามารถในการเข้าถึงการดำเนินงานซ็อกเก็ตระดับต่ำในสตรีม