入口文件調用 `App::run()` 導致頁面內容輸出兩次。
<?php
define('APP_NAME', 'Admin');
define('APP_PATH', './Admin/');
define('THINK_PATH', './ThinkPHP/');
require THINK_PATH . 'ThinkPHP.php';
App::run(); // 多餘調用導致雙重執行
?>
<?php
define('APP_NAME', 'Admin');
define('APP_PATH', './Admin/');
define('THINK_PATH', './ThinkPHP/');
require THINK_PATH . 'ThinkPHP.php';
// App::run(); // 註釋或刪除
?>
ThinkPHP 3.0 核心文件 `ThinkPHP.php` 內部已自動執行應用啟動流程:
// ThinkPHP.php 簡化邏輯
// ... 核心類加載 ...
App::run(); // 內部已調用
// ...
入口文件再次調用 `App::run()` 導致雙重執行:
| 版本 | 入口文件標準寫法 |
|---|---|
| 3.0 | 僅需 `require THINK_PATH.'ThinkPHP.php';` |
| 3.1+ | 需顯式 `App::run();` (或 `Think\App::run()`) |
| 5.0+ | `(new \think\App())->run();` |
| 6.0+ | `\think\facade\App::run()` |
一行多餘代碼引發的雙重執行,提醒我們:框架升級必讀遷移指南,入口文件是遷移首要檢查點。