Sự khác biệt chính: PHP một ngôn ngữ kịch bản phía máy chủ có triển khai chính trong phát triển web. Tuy nhiên, nó có thể được sử dụng như một ngôn ngữ lập trình có mục đích chung. PHP4 và PHP5 là hai phiên bản của PHP. PHP4 được phát hành vào ngày 22 tháng 5 năm 2000. Vào ngày 13 tháng 7 năm 2004, PHP5 đã được phát hành. Nó được cung cấp bởi Zend Engine II. Đó là một cải tiến so với PHP4 và bao gồm nhiều tính năng mới.
PHP là một ngôn ngữ kịch bản lệnh nhúng HTML, phía máy chủ, mã nguồn mở. Về cơ bản, nó có thể thực hiện bất kỳ tác vụ nào mà các chương trình CGI khác có thể, nhưng nó chủ yếu được sử dụng để tạo các trang Web động. Ưu điểm chính của nó là tương thích với nhiều loại cơ sở dữ liệu. Hơn nữa, PHP có thể nói chuyện trên các mạng bằng IMAP, SNMP, NNTP, POP3 hoặc HTTP.
PHP bao gồm khả năng giao diện dòng lệnh và có thể được sử dụng trong các ứng dụng đồ họa độc lập. Các lệnh PHP có thể được nhúng trực tiếp vào tài liệu nguồn HTML thay vì gọi tệp bên ngoài để xử lý dữ liệu. Trong tài liệu HTML, tập lệnh PHP được đặt trong các thẻ PHP đặc biệt. Do các thẻ này, lập trình viên có thể xen kẽ giữa HTML và PHP thay vì phải dựa vào số lượng mã lớn để xuất HTML. Ngoài ra, khi PHP được thực thi trên máy chủ, máy khách không thể xem mã PHP.
Vào ngày 13 tháng 7 năm 2004, PHP5 đã được phát hành. Nó được cung cấp bởi Zend Engine II. Đó là một cải tiến so với PHP4 và bao gồm nhiều tính năng mới khác nhau, chẳng hạn như hỗ trợ cải tiến cho lập trình hướng đối tượng, tiện ích mở rộng Đối tượng dữ liệu PHP (PDO) và nhiều cải tiến hiệu suất. Phần mở rộng PDO xác định giao diện gọn nhẹ và nhất quán để truy cập cơ sở dữ liệu. Liên kết tĩnh muộn đã được thêm vào trong phiên bản 5.3. PHP5 cũng được thiết kế để tương thích ngược với các phiên bản PHP trước đó và do đó sẽ dẫn đến ít chức năng bị phá vỡ trong khi chuyển đổi từ PHP4 sang PHP5.
Một số khác biệt giữa PHP4 và PHP5:
- PHP5 đã xóa register_globals, trích dẫn ma thuật và chế độ an toàn. Điều này là do thực tế là register_globals đã mở các lỗ hổng bảo mật bằng cách cố ý cho phép tiêm dữ liệu thời gian chạy và việc sử dụng các trích dẫn ma thuật có một tính chất không thể đoán trước.
- PHP4 được cung cấp bởi Zend Engine 1.0, trong khi PHP5 được cung cấp bởi Zend Engine II.
- PHP5 đã thay thế các trích dẫn ma thuật bằng hàm addlashes () để thoát các ký tự.
- PHP4 là một ngôn ngữ thủ tục trong khi PHP5 là hướng đối tượng.
- Trong PHP5 người ta có thể khai báo một lớp là Tóm tắt.
- PHP5 kết hợp các phương thức và thuộc tính tĩnh.
- PHP5 giới thiệu một hàm đặc biệt gọi là __autoload ()
- PHP5 cho phép một người khai báo một lớp hoặc phương thức là Final
- PHP5 giới thiệu một số phương thức ma thuật, như __call, __get, __set và __toString
- Trong PHP5, có 3 mức độ hiển thị: Công khai, riêng tư và được bảo vệ.
- PHP5 giới thiệu ngoại lệ.
- Trong PHP4, mọi thứ đều được truyền bằng giá trị, bao gồm các đối tượng. Trong khi đó trong PHP5, tất cả các đối tượng được truyền bằng tham chiếu.
- PHP5 giới thiệu các giao diện. Tất cả các phương thức được xác định trong một giao diện phải được công khai.
- PHP5 giới thiệu mức lỗi mới được định nghĩa là 'E_STRICT'
- PHP5 giới thiệu các tiện ích mở rộng mặc định mới như SimpleXML, DOM và XSL, PDO và Hash.
- PHP5 giới thiệu các chức năng mới.
- PHP5 giới thiệu một số từ khóa dành riêng mới.
- PHP5 bao gồm các khái niệm OOP bổ sung hơn php4, như các chỉ định truy cập, kế thừa, v.v.
- PHP5 bao gồm hỗ trợ cải tiến của các hệ thống quản lý nội dung hiện tại.
- PHP5 bao gồm giảm tiêu thụ RAM.
- PHP5 giới thiệu tăng cường bảo mật chống lại việc khai thác các lỗ hổng trong các tập lệnh PHP.
- PHP5 giới thiệu lập trình dễ dàng hơn thông qua các chức năng và phần mở rộng mới.
- PHP5 giới thiệu một phần mở rộng MySQL mới có tên MySQLi cho các nhà phát triển sử dụng MySQL 4.1 trở lên.
- Trong PHP5, SQLite đã được gói cùng với PHP.
- PHP5 giới thiệu một phần mở rộng SOAP tích hợp hoàn toàn mới để có khả năng tương tác với Dịch vụ Web.
- PHP5 giới thiệu một phần mở rộng SimpleXML mới để dễ dàng truy cập và thao tác XML dưới dạng các đối tượng PHP. Nó cũng có thể giao diện với phần mở rộng DOM và ngược lại.
- Trong PHP5, các luồng đã được cải thiện rất nhiều, bao gồm khả năng truy cập các hoạt động của ổ cắm cấp thấp trên các luồng.