PHP bắt đầu được hình thành vào mùa thu năm 1994 bởi Rasmus Lerdorf. Phiên bản đầu tiên non_released được sử dụng trên mạng chủ của ông để lưu giữ dấu vết những người xem trực tuyến lý lịch của ông. Phiên bản này được sử dụng rộng rãi vào đầu năm 1995 và được biết đến như là công cụ xây dựng trang chủ cá nhân( Personal Home Page Tools). Nó có một bộ phận tích cú pháp khá đơn giản tuy nhiên nó chỉ có thể hiểu một số ít macro đặc biệt. Sau đó được nâng cấp lên
cao hơn và có thể hiểu thêm một số các tiện ích dùng chung trên các trang chủ. Bộ phận tích cú pháp được viết lại năm 1995 và được đặt tên là phiên bản 2 PHP/FI. Trong phiên bản này các hàm FI( gọi là hàm thông dịch form-Form Interpreter) được Rasmus viết riêng trong một gói khác để thông dịch các form dữ liệu html. Ông đã tổ hợp các thẻ công cụ xây dựng trang chủ với các hàm FI và thêm một số hỗ trợ mSQL. PHP/FI phát triển một cách kinh ngạc và mọi người bắt đầu đóng góp mã nguồn cho nó.
Thật khó có thể đưa ra một sự thống kê chính xác nhưng có thể ước lượng được khoảng 15000 website sử dụng PHP/FI vào cuối năm 1996 trên thế giới. Đến giữa năm 1997 con số này đã lên tới 50000 website, giữa năm 1997 cũng cho thấy sự thay đổi trong việc phát triển PHP . Bộ cú phân tích cú pháp đã được viết lại để trở thành phiên bản PHP3. Phần lớn các mã nguồn của PHP/FI được sử dụng trong PHP3 tuy nhiên nhiều phần của nó cũng được viết lại hoàn toàn.
Phiên bản PHP4 ra đời đáp ứng hầu hết các chức năng của PHP3 ngoài ra chùng còn được hỗ trợ ở mức cao hơn như cho phép tích hợp một dãy các thư viện và các hàm mở rộng… Ngày nay cả PHP3 và PHP4 đều được sử dụng rất nhiều trong các sản phẩm thương mại lớn như web server StrongHold của Red Had. Một sự ước lượng dè dặt dựa trên phép ngoại suy từ những con số được cung cấp bởi NetCrafg là trên 5100000 site trên thế giới sử dụng PHP và càng triển vọng hơn khi càng có nhiều site chạy server IIS của Microsoft trên internet.
3.3.2.Một số cú pháp cơ bản của PHP 3.3.2.1 Các thẻ chứa đoạn mã PHP
Có 4 cách để viết một đoạn mã PHP trong một trang web
Cách thứ nhất: đoạn mã PHP được chứa trong cặp thể ‘<?php’ và ‘?>’ cách này chỉ thực hiện được khi thuộc tính cho phép dùng thẻ ngắn trong file cấu hình của PHP được thiết lập là enable (thuộc tính này thường được để mặc định là enable).
Ví dụ :
Cách thứ hai: đoạn mã PHP được chứa trong cặp thẻ ‘<?php’ và ‘?>’. Đây là cách đầy đủ nhất của PHP.
Ví dụ :
<?php echo “Đây là cách thứ hai”; ?>
Cách thứ ba: đoạn mã PHP được chứa trong cặp thẻ ‘<script language = “php”> và ‘</script>’cách này được đặt mặc định giống như các ngôn ngữ nhúng khác trong các trang html.
Ví dụ :
<script language = “php”> echo “Đây là cách thứ ba “; </cript> Cách thứ tư: đoạn mã PHP được chứa trong cặp thẻ ‘<%>’hoặc ‘<%=’ và ‘%’. Cách này chỉ có tác dụng khi thuộc tính sử dụng các thẻ kiểu ASP được thiết lập là enable trong file cấu hình của PHP.
Ví dụ :
<% echo “Đây là cách thứ tư”; %> <%= echo “Đây là cách thứ tư” ; %>
3.3.2.2 Ngăn cách các lệnh
Các lệnh trong PHP được ngăn cách nhau bởi dấu chấm phẩy’;’ giống như trong ngôn ngữ C
Thẻ đóng đoạn mã PHP (‘?>’) cũng có tác dụng kết thúc câu lệnh như dấu ‘;’. Trong hai câu lệnh sau đều đúng
<?php echo “Một ví dụ về PHP “; ?> <?php echo “Một ví dụ về PHP” ?>
3.3.2.3 Chú giải
PHP hỗ trợ các chú giải giống như C, C++ và các chú giải kiểu shell trong Unix. Có hai cách chú giải :
Chú giải trên một dòng được bắt đầu bằng dấu ‘//’ các ký tự phía sau cặp ký hiệu này đều được coi là phần chú thích.
Ví dụ : <?php
echo “Chú thích kiểu C++”; // một chú thích kiểu C++
echo “Chú thích kiểu shell”; # một chú thích kiểu shell trong Unix ?>
Chú giải trên nhiều dòng được ký hiệu bởi cặp dấu bắt đầu ‘/*’ và kết thúc ‘*/’ mọi ký tự trong cặp dấu này đều được coi là phần chú thích.
Ví dụ : <?php
/* một ví dụ về
Chú thích trên nhiều dòng */
echo “ Một ví dụ về chú thích trên nhiều dòng “; ?>
3.3.2.4 Kiểu
PHP hỗ trợ một số các kiểu sau :
a. Kiểu mảng
Có hai loại kiểu mảng: mảng một chiểu và mảng nhiều chiều Một số hàm hỗ trợ liên quan đến mảng trong PHP:
Các hàm tạo mảng : list( ), arrway( )
Các hàm sắp xếp mảng: asort( ), arsorrt( ), ksort( )…..
Hàm đếm số phần tử mảng : count( )
Các hàm duyệt mảng: next( ), prev( ), each( ).
…..