Mẫu hình | chỉ lệnh, hướng đối tượng |
---|---|
Thiết kế bởi | Rasmus Lerdorf |
Nhà phát triển | Nhóm phát triển PHP (The PHP Group), Zend Technologies [1] |
Xuất hiện lần đầu | 1995 |
Phiên bản ổn định | 8.0.8
/ 1 tháng 7 năm 2021 |
Bản xem thử | 8.1.0
|
Kiểm tra kiểu | Động, yếu |
Hệ điều hành | Đa nền tảng |
Giấy phép | Giấy phép PHP |
Phần mở rộng tên tập tin | .php |
Trang mạng | http://php.net/ |
Các bản triển khai lớn | |
Roadsend PHP, Phalanger, Quercus, Project Zero | |
Ảnh hưởng từ | |
C, Perl, Java, C++, Python | |
Ảnh hưởng tới | |
Php4delphi |
PHP: Hypertext Preprocessor, viết tắt là PHP, là một ngôn ngữ lập trình kịch bản chủ yếu dùng để phát triển các ứng dụng máy chủ, mã nguồn mở và có tính ứng dụng rộng rãi. PHP được tối ưu hóa cho phát triển web, dễ dàng tích hợp vào HTML, với tốc độ nhanh và cú pháp tương tự như C và Java, nên dễ học và giúp rút ngắn thời gian phát triển. Chính vì lý do này, PHP đã trở thành một trong những ngôn ngữ lập trình web phổ biến nhất toàn cầu.
Ngôn ngữ PHP cùng với các thư viện và tài liệu gốc được phát triển bởi cộng đồng, với sự đóng góp đáng kể từ Zend Inc. — một công ty được thành lập bởi những nhà phát triển chính của PHP để tạo ra môi trường chuyên nghiệp nhằm mở rộng PHP trong môi trường doanh nghiệp.
Lịch sử phát triển
PHP/FI
PHP được phát triển từ một công cụ có tên là PHP/FI, do Rasmus Lerdorf tạo ra vào năm 1994. Ban đầu, PHP/FI chỉ là một tập hợp các mã kịch bản Perl đơn giản để theo dõi lượt truy cập vào trang hồ sơ cá nhân của ông trên mạng. Ông đặt tên công cụ này là 'Personal Home Page Tools'. Khi nhu cầu sử dụng mở rộng, Rasmus đã viết một bộ thực thi bằng C để truy vấn cơ sở dữ liệu và hỗ trợ xây dựng các ứng dụng web cơ bản. Ông đã quyết định công khai mã nguồn của PHP/FI để cộng đồng có thể xem, sử dụng, sửa lỗi và cải tiến nó.
PHP/FI, viết tắt của 'Personal Home Page/Forms Interpreter', đã bao gồm một số chức năng cơ bản của PHP mà chúng ta thấy ngày nay. Nó có các biến giống như Perl, tự động thông dịch các biến từ form và hỗ trợ cú pháp HTML nhúng. Cú pháp này tuy tương tự như Perl nhưng hạn chế hơn và thiếu sự nhất quán.
Năm 1997, PHP/FI 2.0, phiên bản viết lại lần hai bằng C, đã thu hút hàng nghìn người dùng trên toàn cầu, với khoảng 50.000 tên miền đã cài đặt, chiếm khoảng 1% số tên miền trên Internet. Mặc dù có nhiều người tham gia đóng góp vào việc cải thiện mã nguồn, thời điểm đó dự án chủ yếu vẫn là công sức của một cá nhân.
PHP/FI 2.0 được chính thức phát hành vào tháng 11 năm 1997, sau một thời gian dài chỉ có dưới dạng bản beta. Không lâu sau đó, nó đã được thay thế bởi các bản alpha đầu tiên của PHP 3.0.
PHP 3
PHP 3.0 là phiên bản đầu tiên mang đến hình ảnh gần gũi với các phiên bản PHP hiện tại. Được phát triển bởi Andi Gutmans và Zeev Suraski vào năm 1997, phiên bản này đã được viết lại hoàn toàn từ mã nguồn trước đó. Họ đã phát triển PHP 3.0 vì nhận thấy PHP/FI 2.0 không đủ khả năng hỗ trợ các ứng dụng thương mại điện tử mà họ đang triển khai trong dự án đại học của mình. Để xây dựng dựa trên nền tảng của PHP/FI và phát triển phiên bản kế tiếp, Andi, Rasmus và Zeev đã hợp tác để công bố PHP 3.0 và dừng phát triển PHP/FI 2.0.
Một trong những điểm mạnh nổi bật của PHP 3.0 là khả năng mở rộng mạnh mẽ của nó. Phiên bản này cung cấp một cơ sở hạ tầng vững chắc cho nhiều loại cơ sở dữ liệu, giao thức và API khác nhau, thu hút nhiều nhà phát triển tham gia và đề xuất các mô-đun mở rộng mới. Điều này đã góp phần lớn vào thành công của PHP 3.0. Ngoài ra, PHP 3.0 còn giới thiệu các tính năng mới như hỗ trợ cú pháp hướng đối tượng và cú pháp ngôn ngữ nhất quán.
Ngôn ngữ mới đã được công bố với tên gọi ngắn gọn là 'PHP', loại bỏ sự liên hệ với mục đích cá nhân của PHP/FI 2.0. Đây là một tên viết tắt hồi quy của 'PHP: Hypertext Preprocessor'.
Cuối năm 1998, PHP đã trở nên phổ biến với hàng chục ngàn người dùng và các website đã cài đặt nó. Vào thời kỳ đỉnh cao, PHP 3.0 đã được cài đặt trên khoảng 10% số máy chủ web trên Internet.
PHP 3.0 được chính thức công bố vào tháng 6 năm 1998, sau 9 tháng được cộng đồng kiểm tra và đánh giá.
PHP 4
Vào mùa đông năm 1998, ngay sau khi PHP 3.0 được phát hành chính thức, Andi Gutmans và Zeev Suraski bắt tay vào việc viết lại phần lõi của PHP. Mục tiêu của họ là cải thiện tốc độ xử lý các ứng dụng phức tạp và nâng cao tính mô-đun của mã nguồn PHP. Dù PHP 3.0 đã hỗ trợ nhiều tính năng mới và nhiều cơ sở dữ liệu cũng như API của bên thứ ba, nhưng nó chưa được tối ưu hóa để xử lý hiệu quả các ứng dụng phức tạp.
Một động cơ mới mang tên 'Zend Engine' (tên kết hợp từ các chữ cái đầu của Zeev và Andi) đã đáp ứng thành công các yêu cầu thiết kế, và được giới thiệu lần đầu vào giữa năm 1999. PHP 4.0, dựa trên động cơ này và đi kèm với nhiều tính năng mới, đã được công bố vào tháng 5 năm 2000, gần hai năm sau khi PHP 3.0 ra mắt. PHP 4.0 không chỉ cải thiện tốc độ xử lý mà còn hỗ trợ nhiều máy chủ web hơn, quản lý phiên làm việc HTTP, bộ đệm đầu ra, xử lý thông tin người dùng an toàn hơn và cung cấp một số cấu trúc ngôn ngữ mới.
Với sự ra mắt của PHP 4, số lượng nhà phát triển PHP đã tăng lên hàng trăm nghìn và hàng triệu trang web đã cài đặt PHP, chiếm khoảng 20% số tên miền trên Internet.
Nhóm phát triển PHP đã mở rộng lên hàng nghìn người, cùng với nhiều người khác tham gia vào các dự án liên quan như PEAR, PECL và tài liệu kỹ thuật cho PHP.
PHP 5
Sự thành công vang dội của PHP 4.0 không khiến đội ngũ phát triển PHP tự mãn. Cộng đồng đã nhanh chóng chỉ ra những điểm yếu của PHP 4, đặc biệt là trong hỗ trợ lập trình hướng đối tượng (OOP), xử lý XML, tương thích với giao thức mới của MySQL 4.1 và 5.0, cũng như hỗ trợ dịch vụ web còn hạn chế. Những vấn đề này đã thúc đẩy Zeev và Andi phát triển Zend Engine 2.0, nền tảng của PHP 5.0. Mặc dù có thông tin trên mạng từ tháng 7 năm 2002 về phiên bản này, phát triển PHP 5.0 thực sự bắt đầu vào tháng 12 năm 2002. PHP 5 Beta 1 được công bố vào ngày 29 tháng 6 năm 2003, đánh dấu sự ra mắt của Zend Engine 2.0. Beta 2 ra mắt vào tháng 10 năm 2003 với sự xuất hiện của hai tính năng được mong đợi: Iterators và Reflection, trong khi namespaces, một tính năng gây tranh cãi, đã bị loại bỏ. PHP 5 Beta 3 được công bố vào ngày 21 tháng 12 năm 2003, với các tính năng mới như phân phối kèm Tidy, bỏ hỗ trợ Windows 95, tích hợp các hàm PHP trong XSLT, sửa lỗi và bổ sung nhiều hàm mới. PHP 5.0 chính thức ra mắt vào ngày 13 tháng 7 năm 2004, sau một loạt các bản kiểm tra bao gồm Beta 4, RC 1, RC2, RC3. Mặc dù được xem là phiên bản sản xuất đầu tiên, PHP 5.0 vẫn còn một số lỗi, đáng kể là lỗi xác thực HTTP.
Vào ngày 14 tháng 7 năm 2005, PHP 5.1 Beta 3 được công bố, đánh dấu sự phát triển đáng kể của PHP với sự bổ sung của PDO, một hệ thống API nhất quán cho truy cập cơ sở dữ liệu và thực hiện câu truy vấn. PHP 5.1 còn tiếp tục cải thiện Zend Engine 2, nâng cấp mô-đun PCRE lên phiên bản 5.0 và thêm nhiều tính năng mới trong SOAP, streams và SPL.
PHP 6
Phiên bản PHP 6 được kỳ vọng sẽ giải quyết những thiếu sót của các phiên bản trước, như hỗ trợ namespace, Unicode, và sử dụng PDO làm API chuẩn cho truy cập cơ sở dữ liệu, đồng thời loại bỏ các API cũ và đưa chúng vào thư viện PECL. Tuy nhiên, PHP 6 chỉ được sử dụng cho nghiên cứu và thử nghiệm trước khi PHP quyết định bỏ qua phiên bản 6 và chuyển thẳng lên phiên bản 7.
PHP 7
Với việc áp dụng bộ nhân Zend Engine mới, PHPNG, tốc độ xử lý của PHP đã được cải thiện gấp đôi. Phiên bản này còn bổ sung nhiều cú pháp và tính năng mới, giúp PHP trở nên mạnh mẽ hơn. Một số cải tiến quan trọng bao gồm:
- Khai báo kiểu dữ liệu cho các biến.
- Xác định kiểu dữ liệu trả về của một hàm.
- Thêm các toán tử mới như (??, <=>, ...)
Cú pháp
PHP chỉ xử lý mã nằm trong các dấu giới hạn của nó. Mã bên ngoài những dấu này sẽ được xuất ra trực tiếp mà không qua xử lý của PHP. Các dấu giới hạn phổ biến nhất là để mở và
?>
để đóng. Dấu giới hạn dạng thẻ như và
cũng thỉnh thoảng được sử dụng. Ngoài ra, có thể dùng dấu giới hạn ngắn
hoặc
=
(dùng để xuất xâu ký tự hoặc biến) với dấu kết thúc ?>
. Những thẻ này thường được dùng nhưng không được khuyến khích vì có thể bị vô hiệu khi cấu hình PHP. Mục đích của các dấu này là phân cách mã PHP với mã khác như HTML, mọi đoạn mã bên ngoài sẽ được xuất ra trực tiếp.
Biến trong PHP được khai báo bằng cách thêm dấu đô la ($) trước tên biến và không cần chỉ định kiểu dữ liệu. Khác với tên hàm và lớp, tên biến là nhạy cảm với chữ hoa chữ thường. Cả dấu ngoặc kép (''
) và ký hiệu đánh dấu văn bản (<<
/* */
cho chú thích nhiều dòng, //
và #
cho chú thích một dòng. Lệnh echo là một lệnh trong PHP dùng để xuất văn bản ra trình duyệt web.
Về cú pháp, PHP tương tự như nhiều ngôn ngữ lập trình bậc cao với cú pháp kiểu C. Các câu lệnh điều kiện If
(Nếu), vòng lặp for
và while
, cũng như các hàm trả về đều giống với cú pháp của các ngôn ngữ như C, C++, Java và Perl.
Kiểu dữ liệu
Kiểu dữ liệu nguyên thủy
Các kiểu dữ liệu như số nguyên (int), chuỗi ký tự (string), số thực (float, double), v.v.
Kiểu dữ liệu cấu trúc
Kiểu class.
Danh sách các hàm phổ biến
- Hàm include(): Chèn nội dung của một tập tin vào tập tin gọi nó.
- Hàm strlen(): Trả về chiều dài của một chuỗi.
- Hàm strpos(): Tìm kiếm một ký tự hoặc đoạn văn bản trong chuỗi.
- Hàm phpinfo(): Hiển thị cấu hình chi tiết của PHP trên máy chủ.
- Hàm date(): Hiển thị ngày tháng theo định dạng đã thiết lập.
- Hàm substr(): Cắt một đoạn trong chuỗi.
- Hàm str_word_count(): Đếm số từ trong chuỗi.
- Hàm str_split(): Tách các ký tự trong chuỗi và chuyển thành mảng.
- Hàm echo(): Xuất dữ liệu chuỗi ra màn hình.