thinkphp 6.0模板支持三元运算符,直接在{$}中使用,如{$status ? '已发布' : '未发布'};需注意数组用方括号、不可调用函数、推荐严格比较及判空处理。

ThinkPHP 6.0 模板中三元运算符语法简洁,直接写在模板变量标签内即可,无需额外配置。只要控制器已正确 assign 变量,模板里就能立即使用。
基础写法(直接复制可用)
以下代码可直接粘贴到 .html 模板文件中:
{$status ? '已发布' : '未发布'}{$user['sex'] == 1 ? '男' : '女'}-
{$score >= 90 ? '优秀' : ($score >= 80 ? '良好' : '需努力')}(支持嵌套) -
{$info['is_active'] ?? 'false' ? '在线' : '离线'}(结合空合并判断)
注意事项(避免报错)
这些细节不注意容易导致渲染失败或输出空白:
- 数组访问必须用方括号:
{$data['name']},不支持点语法{$data.name}在运算中 - 三元运算中不能调用函数或方法,如
{$user['level']|getLevelName ? 'VIP' : '普通'}❌ 不支持;应提前在控制器处理好逻辑再传值 - 布尔值判断推荐用严格比较:
{$flag === true ? '开启' : '关闭'},避免类型隐式转换问题 - 变量未定义时建议先判空,例如:
{($user['age'] ?? 0) > 18 ? '成年' : '未成年'}
配合控制器使用的最小示例
控制器(如 app\controller\Index.php)中:
$this->assign('status', 1);
$this->assign('user', ['sex' => 1, 'age' => 25]);
$this->assign('score', 85);
return view();
对应模板中任一位置写:
状态:性别:评级:= 90 ? 'A' : ($score >= 80 ? 'B' : 'C')}>
调试小技巧
若结果不符合预期,可在模板中临时加一行验证逻辑:
debug: →- 或用
{:dump($user)}查看变量结构(需开启调试模式)
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











