php数组配置文件需以return语句结尾并由变量接收,如$config = include 'config.php';禁止输出、exit及非标准后缀;生产环境推荐parse_ini_file或json_decode等更安全方案。

PHP里用include加载数组配置文件的正确姿势
直接 include 一个返回数组的 PHP 文件是可行的,但必须确保该文件以 return 结束,且调用方用变量接收返回值;否则得到的是 1(成功加载的布尔值),不是配置数组。
配置文件必须以 return 语句结尾
常见错误是写成“定义变量就结束”,比如:
$config = ['db_host' => 'localhost'];
这会导致 include 返回 1,而非数组。正确写法是:
<?php return [
'db_host' => 'localhost',
'db_port' => 3306,
];
- 文件里不能有输出(包括空格、BOM、
echo或 HTML) - 不能使用
exit、die或其他中断执行的语句 - 推荐用
.php后缀,不建议用.inc或.config.php等非标准后缀,避免被 Web 服务器误暴露源码
加载时必须用变量接收 return 值
include 本身不自动赋值,必须显式接收:
$config = include 'config.php';
如果漏掉赋值,$config 就是 null 或未定义;而 include 'config.php'; 单独一行只会返回 1,毫无意义。
- 可用
require替代include,避免配置缺失时静默失败 - 若配置文件路径不确定,建议先用
file_exists()判断,再require - 不建议在循环中反复
include同一配置文件——PHP 不会自动缓存返回值,每次都会重新解析执行
替代方案:用 parse_ini_file 或 json_decode 更安全?
纯数组 PHP 文件虽灵活,但存在代码注入风险(比如配置文件被恶意改写并执行任意 PHP 逻辑)。生产环境更推荐:
-
parse_ini_file('config.ini', true):适合简单键值对,不支持嵌套数组,但无执行风险 -
json_decode(file_get_contents('config.json'), true):结构清晰、语言无关,需确保 JSON 格式合法且文件可读 - 现代项目倾向用
symfony/yaml或vlucas/phpdotenv,但它们依赖额外扩展或 Composer
PHP 数组配置文件最轻量,但“轻量”背后是责任——它本质是一段被执行的代码,任何语法错误或意外输出都会让整个应用挂掉。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











