Cú pháp của PHP rất giống với ngôn ngữ C. PHP là một ngôn ngữ kịch bản phía máy chủ. Mã PHP được lưu trữ dưới dạng tệp văn bản với phần mở rộng ".php". Một tệp ".php" về cơ bản là một trang web với một hoặc nhiều khối mã PHP được xen kẽ trong mã HTML. Tuy nhiên, nó phải được mở trong trình duyệt với một URL giao thức HTTP. Nói cách khác, nếu bạn nhấp đúp vào biểu tượng tệp PHP, nó sẽ được mở cục bộ với giao thức tệp. Ví dụ, nếu bạn mở tệp "index.php" trong thư mục gốc tài liệu của máy chủ Apache, nó có thể chỉ hiển thị văn bản của mã PHP. Tuy nhiên, nếu bạn khởi động máy chủ Apache và mở URL http://localhost/index.php , nó sẽ hiển thị trang chủ của Apache.
Một tệp ".php" có thể chứa các khối mã HTML, CSS và JavaScript cùng với mã PHP. Do đó, bộ phân tích cú pháp PHP phải phân biệt giữa mã PHP và các phần tử khác. Khi một tệp ".php" được mở trong trình duyệt web, công cụ HTML sẽ hiển thị phần HTML/CSS/JavaScript và thoát khỏi khối HTML ngay khi gặp các câu lệnh được bao trong thẻ PHP. Bộ thông dịch phân tích cú pháp PHP sẽ xử lý khối này và trả lại phản hồi cho trình duyệt.
PHP định nghĩa hai phương pháp sử dụng thẻ để tách mã PHP khỏi HTML. Thẻ PHP chuẩn và thẻ ngắn (kiểu SGML).
Cách sử dụng thẻ PHP hiệu quả nhất và phổ biến nhất là −
<?php One or more PHP statements ?>
Nếu bạn sử dụng kiểu này, bạn có thể yên tâm rằng các thẻ của bạn sẽ luôn được hiểu đúng cách.
Thẻ ngắn hoặc thẻ mở ngắn trông như thế này −
<?php One or more PHP statements ?>
Các thẻ ngắn, như người ta có thể mong đợi, là tùy chọn ngắn nhất. Bạn phải thực hiện một trong hai điều sau để kích hoạt PHP nhận diện các thẻ này −
Chọn tùy chọn cấu hình "--enable-short-tags" khi bạn xây dựng PHP.
Đặt cài đặt "short_open_tag" trong tệp php.ini của bạn thành on.
short_open_tag=on
Tùy chọn này phải được tắt để phân tích XML với PHP vì cú pháp giống nhau được sử dụng cho các thẻ XML.
Việc sử dụng ASP-style tags −
<%...%>
và HTML script tags −
<script language = "PHP">...</script>
đã bị ngừng cung cấp.
Bộ phân tích cú pháp PHP sẽ bỏ qua mọi thứ bên ngoài một cặp thẻ mở và thẻ đóng. Do đó, một tệp PHP có thể có nội dung hỗn hợp. Điều này cho phép PHP được nhúng trong các tài liệu HTML −
<p>This is a HTML statement</p> <?php echo This is a PHP statement.'; ?> <p>This is another HTML statement.</p>
Một ví dụ hơi nâng cao về việc thoát ký tự bằng cách sử dụng điều kiện được hiển thị dưới đây −
<?php if ($expression == true): ?> This HTML statement will be rendered. <?php else: ?> Otherwise this HTML statement will be rendered. <?php endif; ?>
PHP bỏ qua các khối mà điều kiện không được thỏa mãn, ngay cả khi chúng nằm ngoài các thẻ mở/đóng PHP.
Để xuất ra các khối văn bản lớn, việc thoát khỏi chế độ phân tích PHP thường hiệu quả hơn so với việc gửi toàn bộ văn bản qua echo hoặc print.
Cú pháp cơ bản của PHP rất giống với cú pháp của C và C++.
Một câu lệnh trong PHP là bất kỳ biểu thức nào được theo sau bởi dấu chấm phẩy (;). Bất kỳ chuỗi nào của các câu lệnh PHP hợp lệ được bao quanh bởi các thẻ PHP đều là một chương trình PHP hợp lệ.
Dưới đây là một câu lệnh điển hình trong PHP, trong trường hợp này gán một chuỗi ký tự cho một biến gọi là "$greeting" −
$greeting = "Welcome to PHP!";
Một dòng vật lý trong trình soạn thảo văn bản không có ý nghĩa gì trong mã PHP. Có thể có nhiều câu lệnh kết thúc bằng dấu chấm phẩy trong một dòng duy nhất. Mặt khác, một câu lệnh PHP có thể kéo dài qua nhiều dòng nếu cần thiết.
Các khối xây dựng nhỏ nhất của PHP là các token không thể chia nhỏ được như số (3.14159), chuỗi ("hai"), biến ($hai), hằng số (TRUE), và các từ đặc biệt tạo nên cú pháp của chính PHP như "if", "else", "while", "for", và những từ khác.
Mặc dù các câu lệnh không thể được kết hợp như các biểu thức, bạn luôn có thể đặt một chuỗi các câu lệnh ở bất kỳ đâu mà một câu lệnh có thể xuất hiện, bằng cách đặt chúng trong một cặp dấu ngoặc nhọn.
Ở đây, cả hai câu sau đều tương đương −
if (3 == 2 + 1) print("Good - I haven't totally lost my mind.
"); if (3 == 2 + 1) { print("Good - I haven't totally"); print("lost my mind.
"); }
PHP là một ngôn ngữ phân biệt chữ hoa chữ thường. Tên của các định danh PHP khác nhau như biến, hàm, lớp, v.v., là phân biệt chữ hoa chữ thường. Do đó, biến "$age" không giống như "$Age". Tương tự, một hàm có tên "myfunction()" khác với một hàm khác có tên "MyFunction()".