Thứ Hai, 11 tháng 5, 2026

Include và Require trong PHP khác nhau thế nào? Nhìn giống nhau, nhưng lúc lỗi thì “tính cách” khác hẳn

Lập trình nói chung và PHP nói riêng, việc chúng ta "dùng chùa" những thứ có sẵn là "chuyện thường ngày ở huyện". Lúc nào, ngôn ngữ nào...chúng ta cũng đều có nhu cầu sử dụng những thư viện có sẵn.

Mỗi ngôn ngữ có "từ khóa" riêng để "kêu gọi" những "tài nguyên" đó. Nếu bạn mới học PHP, sớm muộn gì cũng gặp hai "anh em song sinh" Include và Require:


include "config.php";



require "config.php";


Nhìn qua thì có vẻ giống nhau, một kiểu "kêu gọi đồng bọn".


Bạn có thể nghĩ:


"Chắc khác nhau gì mỗi… cách viết cho vui?" 🤡


Không đâu 😅


Khi mọi thứ hoạt động bình thường, chúng gần như giống nhau.


Nhưng khi file bị thiếu hoặc sai đường dẫn…


👉 tính cách của hai anh này khác nhau hoàn toàn.



Trong PHP:


  • include sẽ báo warning nếu file không tồn tại, nhưng chương trình vẫn tiếp tục chạy.
  • require sẽ báo fatal error và dừng chương trình ngay lập tức.


Ví dụ đời thường


Hãy tưởng tượng bạn chuẩn bị nấu mì gói.

Bạn cần:


  • nước sôi
  • gói gia vị


include giống như…


Bạn quên gói gia vị.


Vẫn có thể ăn được.


Chỉ là… hơi nhạt 😅


require giống như…


Bạn quên… mì.


👉 Không có mì thì nấu cái gì nữa? 🤡


👉 PHP sẽ:


"Dừng chương trình ngay lập tức!"


Include là gì?


include "header.php";


PHP sẽ chèn nội dung của header.php vào vị trí đó.

Nếu file không tồn tại:


  • PHP báo warning
  • nhưng chương trình vẫn chạy tiếp


Ví dụ

include "abc.php";

echo "Hello World";


Nếu abc.php không tồn tại, kết quả sẽ là:


Warning: include(abc.php): Failed to open stream...

Hello World


👉 Dù lỗi, dòng "Hello World" vẫn được in ra.


Require là gì?

require "config.php";


Nếu file không tồn tại:


  • PHP báo fatal error
  • chương trình dừng ngay

Ví dụ

require "abc.php";

echo "Hello World";


Kết quả:


Fatal error: Failed opening required 'abc.php'


👉 "Hello World" sẽ không bao giờ xuất hiện.


So sánh nhanh


Tình huống                       include                                  require

File tồn tại               Chạy bình thường                 Chạy bình thường

File không tồn tại       Warning, vẫn chạy tiếp        Fatal error, dừng ngay


Khi nào dùng include?


Dùng khi file đó không quá quan trọng.


Ví dụ:


  • banner quảng cáo
  • sidebar
  • footer
  • thống kê lượt xem


Nếu thiếu cũng không đến nỗi "tận thế".


Khi nào dùng require?


Dùng khi file đó bắt buộc phải có.


Ví dụ:


  • config.php
  • file kết nối database
  • file chứa hàm quan trọng
  • file kiểm tra đăng nhập


Nếu thiếu các file này, chương trình không thể hoạt động bình thường.


Ví dụ thực tế với website PHP

require "config.php";

include "header.php";

include "sidebar.php";

include "footer.php";


👉 config.php là "trái tim".


Thiếu nó → dừng ngay.


👉 header.php, footer.php chỉ là "trang trí".


Thiếu thì vẫn có thể sống sót 😅


Include_once và Require_once


PHP còn có:


include_once "functions.php";

require_once "config.php";


👉 Chúng chỉ nạp file một lần duy nhất.


Rất hữu ích để tránh lỗi:

Cannot redeclare function...

 

Ví dụ đời thường


Bạn mời bạn thân đi ăn.

  • include: lỡ gọi hai lần cũng không sao 😅
  • include_once: gọi một lần là đủ, đỡ tốn tiền 🤡

Code mẫu thực tế

config.php

<?php

$conn = mysqli_connect("localhost", "user", "pass", "db");

?>

index.php

<?php

require "config.php";


echo "Website hoạt động bình thường";

?>


Nếu config.php bị thiếu:


👉 chương trình dừng ngay.


Điều này hoàn toàn hợp lý.


Checklist lựa chọn nhanh


👉 Hỏi bản thân:


"Nếu file này bị thiếu, website có nên dừng luôn không?"


  • Nếu CÓ → dùng require
  • Nếu KHÔNG → dùng include


Một sự thật hơi "đau cái lòng"


Rất nhiều newbie dùng:


include "config.php";


Sau đó file config.php bị thiếu.


Website vẫn chạy.


Nhưng:


  • database không kết nối
  • query không chạy
  • dữ liệu trống trơn


Bạn debug 2 tiếng.


Cuối cùng phát hiện:


"Ồ… config.php chưa được nạp." 🤡


Tổng kết

include → lỗi nhưng vẫn chạy tiếp

require → lỗi là dừng ngay


👉 Quy tắc đơn giản:


  1. File quan trọngrequire
  2. File phụ trợ → include


FAQ nhanh

Include và require có ảnh hưởng tốc độ không?

→ Gần như không đáng kể.


Nên dùng require hay include cho config.php?

→ require_once.


Nên dùng _once không?

→ Có, đặc biệt cho:


config

functions

classes

👉 Bạn có thể cũng đang gặp

Session không hoạt động

Header already sent

MySQL không connect

Undefined index 

Không có nhận xét nào:

Đăng nhận xét