Обе конструкции подключают файл, но различаются поведением при ошибке:
include - при отсутствии файла генерирует E_WARNING, скрипт продолжает работуrequire - при отсутствии файла генерирует E_ERROR, скрипт останавливаетсяinclude_once / require_once - подключают файл только один раз, игнорируя повторные вызовыrequire 'config.php'; // фатальная ошибка если нет
include 'optional_module.php'; // Warning если нет
require_once 'helpers.php'; // подключит только раз
В современном PHP почти не используются напрямую - Composer и PSR-4 автозагрузка решают задачу подключения классов.