PHP模板中如何用简写语法输出null数组值为空且不报错?
简洁解决PHP 7.4+中数组null值访问的Notice错误
针对你遇到的问题,以下几种简洁写法可以替代繁琐的isset()判断:
空合并运算符(??):PHP 7.0及以上支持,直接在输出时指定默认值,当目标值为
null或不存在时自动使用默认值,不会触发Notice:<?=$debate['title'] ?? '';?>这里如果
$debate['title']是null,会输出空字符串,你也可以把''换成其他默认值比如'无标题'。null合并赋值运算符(??=):如果视图中需要多次使用
$debate['title'],可以先在视图开头给变量设置默认值,之后直接输出即可:<?php $debate['title'] ??= ''; ?> <?=$debate['title'];?>这个写法会在
$debate['title']为null或不存在时,自动将其赋值为空字符串,后续调用就不会再报错。数组可选链(?[])+ 空合并:PHP 8.0及以上支持,适合
$debate本身也可能为null的极端场景,双重保障避免报错:<?=$debate?['title'] ?? '';?>如果
$debate是null,?[]会直接返回null,再通过??转为默认值,彻底杜绝数组偏移访问的Notice。
这些写法都比isset()的<?=isset($debate['title']) ? $debate['title'] : '';?>简洁很多,根据你的PHP版本和使用场景选择即可。
内容的提问来源于stack exchange,提问作者desbest
相关产品推荐
相关产品推荐

