PHP - History

PHP bắt đầu như một dự án mã nguồn mở nhỏ và đã phát triển dần dần khi ngày càng nhiều người nhận ra nó hữu ích như thế nào. Rasmus Lerdorf đã phát hành phiên bản đầu tiên của PHP vào năm 1994. Vào thời điểm đó, PHP có nghĩa là Personal Home Page, vì ông đã sử dụng nó để duy trì trang chủ cá nhân của mình. Sau đó, ông đã thêm hỗ trợ cơ sở dữ liệu và gọi nó là "Personal Home Page/Forms Interpreter" hay PHP/FI, có thể được sử dụng để xây dựng các ứng dụng web đơn giản, động.

  • Zeev Suraski và Andi Gutmans đã viết lại trình phân tích cú pháp vào năm 1997 và hình thành nền tảng của PHP 3 . Tên của ngôn ngữ cũng đã được thay đổi thành từ viết tắt đệ quy PHP: Hypertext Preprocessor. Họ cũng là tác giả của Zend Engine, một trình biên dịch và môi trường thực thi cho PHP. Zend Engine đã hỗ trợ PHP 4 được phát hành vào tháng 5 năm 2000.

  • PHP 5 được phát hành vào năm 2004, bao gồm nhiều tính năng mới như hỗ trợ OOP, PHP Data Objects (PDO) và nhiều cải tiến về hiệu suất.

  • PHP 7 là một phiên bản PHP chính mới được phát triển vào năm 2015. Nó bao gồm các tính năng ngôn ngữ mới, nổi bật nhất là việc giới thiệu khai báo kiểu trả về cho các hàm, bổ sung cho các khai báo kiểu tham số hiện có, và hỗ trợ cho các kiểu số nguyên (integer), số thực (float), chuỗi (string) và boolean trong các khai báo kiểu tham số và kiểu trả về.

New Features in PHP 8

PHP 8 là phiên bản chính mới nhất, được phát hành vào tháng 11 năm 2020. Một số tính năng mới và những thay đổi đáng chú ý bao gồm:

Just-in-time (JIT) Compilation

Trình biên dịch JIT của PHP 8 cung cấp những cải tiến hiệu suất đáng kể cho các phép toán kiểu số học hơn là cho các trường hợp sử dụng phát triển web thông thường. Trình biên dịch JIT mang lại tiềm năng trong tương lai để chuyển một số mã từ C sang PHP.

The "match: Expression

Biểu thức "match" được giới thiệu gần đây ngắn gọn hơn so với câu lệnh switch. Bởi vì match là một biểu thức, kết quả của nó có thể được gán cho một biến hoặc trả về từ một hàm.

PHP 8 – Type Changes and Additions

PHP 8 đã giới thiệu các kiểu hợp nhất, một kiểu trả về tĩnh mới và một kiểu mixed mới. PHP 8 cũng cung cấp Attributes (tương tự như "annotations" trong các ngôn ngữ lập trình khác) giúp thêm siêu dữ liệu vào các lớp PHP.

Ngoài ra, đã có nhiều thay đổi và bổ sung cho thư viện chuẩn PHP. PHP 8.2.9 là phiên bản ổn định mới nhất hiện có.

Các cột mốc quan trọng trong lịch sử phát hành của PHP được tóm tắt trong bảng sau −

Version Description
Version 1.0
(8 June 1995)
Officially called "Personal Home Page Tools (PHP Tools)". This is the first use of the name "PHP".
Version 2.0
(1 November 1997)
Officially called "PHP/FI 2.0". This is the first release that could actually be characterised as PHP, being a standalone language with many features that have endured to the present day.
Version 3.0
(6 June 1998)
Development moves from one person to multiple developers. Zeev Suraski and Andi Gutmans rewritten the base for this version.
Version 4.0
(22 May 2000)
Added more advanced two-stage parse/execute tag-parsing system called the Zend engine.
Version 5.0
(13 July 2004)
Zend Engine II with a new object model.
Version 5.1
(24 November 2005)
Performance improvements with the introduction of compiler variables in re-engineered PHP Engine. Added PHP Data Objects (PDO) as a consistent interface for accessing databases.
Version 6.x
Not released
Abandoned version of PHP that planned to include native Unicode support.
Version 7.0
(3 December 2015)
  • Zend Engine 3 ,
  • Uniform variable syntax,
  • Added Closure:call(),
  • ?? (null coalesce) operator,
  • Return type declarations,
  • Scalar type declarations,
  • <=> "spaceship" three-way comparison operator,
  • Anonymous classes
Version 7.3
(6 December 2018)
Flexible Heredoc and Nowdoc syntax
Version 8.0
(26 November 2020)
  • Just-In-Time (JIT) compilation,
  • Arrays starting with a negative index,
  • TypeError on invalid arithmetic/bitwise operators,
  • Variable syntax tweaks,
  • Attributes,
  • Named arguments,
  • Match expression,
  • Union types, Mixed type,
  • Static return type