Trong hành trình làm web bằng PHP, chúng ta bắt đầu nhận ra rằng việc nhồi tất cả mã vào một file duy nhất không chỉ gây rối mà còn khiến việc chỉnh sửa trở nên mệt mỏi. Đã đến lúc tổ chức lại đống mã đó cho gọn gàng, dễ nhìn, và chuyên nghiệp hơn. Ở bài học này, bạn sẽ làm quen với hai “chiêu thức” cực kỳ hữu ích: dùng biến toàn cục để chia sẻ dữ liệu và include file để tách mã PHP thành từng phần rõ ràng.
Biến toàn cục – chia sẻ thông tin khắp mọi nơi
Trong PHP, khi bạn khai báo một biến ở bên ngoài hàm, nó chỉ “sống” bên ngoài – chứ vào trong hàm thì lại “ngơ ngác”. Ví dụ:
$ten = "Johnny";
function sayHello() {
echo $ten; // lỗi, vì $ten không tồn tại trong hàm
}
Giải pháp là dùng từ khóa global để báo với PHP: “Biến này là hàng xóm của tôi ngoài kia đấy, cho tôi mượn chút đi!”
$ten = "Johnny";
function sayHello() {
global $ten;
echo "Xin chào, $ten!";
}
sayHello(); // Kết quả: Xin chào, Johnny!
Lưu ý: Dù global rất tiện, nhưng nếu dùng quá đà thì cũng gây khó kiểm soát – nên sau này bạn sẽ thấy ta dùng cách tốt hơn: truyền tham số vào hàm hoặc sử dụng class.
Kỹ thuật include – chia file, nhẹ đầu
Giả sử bạn có một file menu.php chứa phần menu dùng chung cho tất cả trang, và bạn không muốn copy-dán 20 lần. Hãy include vào như sau:
include 'menu.php';
Hoặc dùng require nếu bạn muốn bắt buộc file đó phải tồn tại – nếu không có sẽ lỗi luôn:
require 'menu.php';
Vậy sự khác nhau là gì?
| include | require |
|---|---|
| Nếu file không tồn tại, chỉ cảnh báo và tiếp tục | Nếu file không tồn tại, dừng chương trình ngay |
| Dùng khi không quá “sống còn” | Dùng cho file quan trọng như cấu hình, hàm dùng chung |
Bạn cũng có thể dùng include_once hoặc require_once để đảm bảo file chỉ được nạp 1 lần, tránh bị trùng.
Thử thách nhỏ
- Tạo một file
header.phpvàfooter.php, chứa HTML đầu và cuối trang. - Tạo một file
index.phpdùngrequiređể ghép các phần lại. - Viết một biến
$titletoàn cục để hiển thị tiêu đề trang trongheader.php.
Nếu bạn làm được điều này, bạn vừa bước một chân vào thế giới lập trình có tổ chức – nơi mà mỗi dòng code đều có chỗ đứng và lý do tồn tại. Ở bài sau, chúng ta sẽ cùng chia nhỏ giao diện như một web thật sự.

Thảo luận