lang.php报数组语法错误主因是php版本过低不支持短数组语法[]或混入php 8.0+新特性;需用php -v和phpinfo()确认cli与web环境版本均≥7.2.5,且文件中无attributes、联合类型等非法语法。

ThinkPHP6 的 lang.php 配置文件如果报数组语法错误(比如 Parse error: syntax error, unexpected '[' 或 unexpected token "..."),基本可以确定是 PHP 版本与数组写法不兼容,或文件本身被意外修改引入了非法字符。
lang.php 报 Parse error:检查 PHP 版本是否支持短数组语法
ThinkPHP6 要求 PHP ≥ 7.2.5,但很多老服务器仍跑在 PHP 7.1 或更低版本。而 lang.php 默认使用的是短数组语法 [],PHP 5.4+ 才支持;若你看到类似 Parse error: syntax error, unexpected '[',说明当前执行的 PHP 版本低于 5.4(极少见),或更可能是 CLI 与 Web 使用了不同版本的 PHP,且 CLI 版本过低。
- 运行
php -v确认命令行 PHP 版本;再建一个phpinfo()页面确认 Web 服务用的版本 - 别只看 Wamp/XAMPP 控制面板显示的版本——它可能和终端实际调用的不是同一个
- 若 CLI 是 PHP 7.0,而 Web 是 8.1,那么
php think optimize:config这类命令就会直接报错,但网站却能访问 - 修复方式:升级 CLI 的 PHP 到 ≥ 7.2.5,或临时改用完整数组语法
array()(仅应急,不推荐长期用)
lang.php 报 unexpected token "...":确认没混入 PHP 8.0+ 的新语法
PHP 8.0 引入了属性(Attributes)、联合类型等新特性,但 lang.php 是纯配置返回数组的文件,**绝对不能**出现 #[\AllowDynamicProperties]、string|int 或箭头函数等。一旦你在该文件里手误粘贴了这类代码(比如从模型复制时带多了),就会触发 Parse error: syntax error, unexpected token "..." 或类似提示。
- 打开
config/lang.php,逐行检查:开头是否有<?php,结尾是否有return [ ... ];,中间是否混入了注释外的任何 PHP 代码 - 特别注意是否误加了
declare(strict_types=1);—— 配置文件里加这个会直接报错 - 用编辑器显示所有空白符(如 BOM、不可见控制字符),Windows 记事本保存极易带 BOM,导致解析失败
- 安全做法:删掉整个文件,从 ThinkPHP 官方源码或
thinkphp/src/config/lang.php模板重新复制结构,只改值,不改语法
lang.php 加载时报 Language file not exists:路径与命名大小写/连字符不匹配
这个错误看似是文件找不到,但根源常在 lang.php 里的配置项与实际路径不一致,尤其是 default_lang 或 allow_lang_list 写成了 zh_CN、en_us 或 zh,而 ThinkPHP6 只认小写短横线格式(zh-cn、en-us),且严格区分大小写。
-
default_lang必须是字符串,不能是数组或 null;若设成env('LANG', null)而 .env 里没定义,就会 fallback 到空值,进而导致语言包路径拼接出错 -
allow_lang_list必须是索引数组,如['zh-cn', 'en-us'],不能写成['zh-cn' => true]或漏掉引号 - 检查
app/lang/下是否存在对应文件:zh-cn.php,而不是ZH-CN.PHP或zh_cn.php—— Linux 服务器对大小写敏感,名字错一个字符就加载失败 - 验证方式:在控制器里加一行
dump(config('lang'));,确认读到的值是你期望的,且没有被环境变量意外覆盖
最易被忽略的一点:ThinkPHP6 的 lang.php 是「配置文件」,不是「语言包文件」。它只管开关、白名单、侦测方式;真正翻译内容在 app/lang/zh-cn.php 这类文件里。很多人花半天调试 lang.php 语法,结果发现问题是 app/lang/zh-cn.php 文件里多了一个 echo 或用了中文引号,这种错误不会报 parse error,但会让整个语言包加载静默失败,Lang::get() 只返回键名。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











