
Laravel 和 Symfony 均内置了标准 HTTP 状态码与对应描述文本的映射表,开发者可直接访问 Response::$statusTexts 静态属性获取完整列表,无需手动维护或引入第三方库。
laravel 和 symfony 均内置了标准 http 状态码与对应描述文本的映射表,开发者可直接访问 `response::$statustexts` 静态属性获取完整列表,无需手动维护或引入第三方库。
在 Laravel(基于 Symfony HttpFoundation)中,HTTP 状态码描述由 \Illuminate\Http\Response 类统一维护,其静态属性 $statusTexts 是一个关联数组,键为状态码(字符串形式),值为 RFC 定义的标准短描述(如 "404" => "Not Found")。该数组完整覆盖 1xx 到 5xx 共 60+ 个常用状态码,且随框架版本更新同步维护,完全符合 IANA 标准。
✅ 正确用法示例(Laravel 项目中):
use Illuminate\Http\Response;
$responseCode = curl_getinfo($curl, CURLINFO_RESPONSE_CODE);
if ($responseCode && $responseCode >= 400) {
$description = Response::$statusTexts[$responseCode] ?? 'Unknown Status';
throw new \Exception("HTTP Error {$responseCode}: {$description}");
}
⚠️ 注意事项:
- $statusTexts 键名为字符串类型(如 "404"),非整型;若传入整数需显式转换:(string)$responseCode;
- 某些非常规或自定义状态码(如 499, 520)不在标准列表中,访问前建议使用 isset() 或空合并操作符 ?? 防止未定义索引警告;
- Symfony 用户可等价使用 \Symfony\Component\HttpFoundation\Response::$statusTexts,二者内容完全一致(Laravel 的 Response 继承并复用了 Symfony 的底层实现);
- 该数组为只读静态属性,不可修改,也不应被覆盖或重写——它由框架严格管控,确保语义一致性。
? 小技巧:如需全局复用,可封装为辅助函数:
if (!function_exists('http_status_text')) {
function http_status_text(int $code): string {
return \Illuminate\Http\Response::$statusTexts[$code] ?? "HTTP {$code}";
}
}
// 使用:http_status_text(500) → "Internal Server Error"
总结:无需复制粘贴、无需依赖 Guzzle 或 PSR-7 请求对象、更不必自行维护易过时的映射表——Laravel/Symfony 已为你准备好权威、标准、开箱即用的 Response::$statusTexts。这是框架对 HTTP 规范的原生支持,也是专业 PHP 工程实践中“用对工具”的典型体现。











