`require_once` / `require` 在文件不存在或解析錯誤時拋出 **E_COMPILE_ERROR**,**腳本立即終止**,後續代碼不再執行。`include_once` / `include` 只拋 **E_WARNING**,腳本**繼續執行**。
| 語句 | 文件不存在 | 解析錯誤 | 重複引入 |
|---|---|---|---|
| `require` | Fatal Error (停止) | Fatal Error (停止) | 允許重複執行 |
| `require_once` | Fatal Error (停止) | Fatal Error (停止) | 僅執行一次 |
| `include` | Warning (繼續) | Warning (繼續) | 允許重複執行 |
| `include_once` | Warning (繼續) | Warning (繼續) | 僅執行一次 |
$plugin = __DIR__ . '/plugins/optional.php';
if (file_exists($plugin)) include_once $plugin;
else error_log("Optional plugin missing: $plugin");
// composer.json
"autoload": { "psr-4": { "App\\": "src/" } }
// 運行 composer dump-autoload
require_once __DIR__ . '/vendor/autoload.php'; // 單一入口,類按需加載,無需手動 require
拋棄手動 `require`,擁抱 PSR-4 + Composer,依賴關係聲明式管理,部署一致性有保障。