1. Giống nhau:

Cả hai hàm require_onceinclude_once đều:

  • Dùng để nhâp một file PHP bên ngoài vào file hiện tại.
  • Chỉ nhập một lần duy nhất, ngay cả khi file đó được gọi nhập nhiều lần.
  • Tránh lỗi khai báo lại class, function hoặc hằng.

2. Khác nhau:

require_onceinclude_once
Khi file KHÔNG tồn tạiGây fatal error, dừng chương trình ngayGây warning, chương trình vẫn chạy tiếp
Mục độ nghiêm trọngCao hơn, dùng khi file bắt buộc phải cóNhẹ hơn, dùng khi file có thể không có và không sao

3. Khi nào dùng require_once

Dùng khi file bắt buộc phải tồn tại để chương trình chạy đúng:

  • Autoload class hoặc function cố lõi khi thiếu.
  • File khai báo hằng, config quan trọng.
  • File define path của hệ thống.

VD:

require_once __DIR__ . '/includes/config.php';

4. Khi nào dùng include_once

Dùng khi file đó không quan trọng tuyệt đối, và vừa muốn tái sử dụng, vừa muốn code vẫn chạy dù file bị thiếu:

  • Nhập template không quan trọng.
  • Gọi file optional hỗ trợ.

VD:

include_once __DIR__ . '/templates/sidebar.php';

5. Tóm tắt:

  • Dùng require_once khi file bắt buộc có để chương trình chạy được.
  • Dùng include_once khi file có cũng được, không cũng không sao.

❌ Tránh dùng include_once cho các file cần thiết như config hoặc function core.