我有很多这样的代码$Var = !empty($Data->title) ? ' string1 ' . $Data->title : ' string2 ' . $Var2;我在网上搜索,我发现 ?? (Null coalescing operator)因此,我认为可以做这样的事情$Var = ' string1 ' . $Data->title ?? ' string2 ' . $Var2;我问这个是因为我知道??用于isset()或NULL但我需要empty()我的项目代码。
1 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
正如你已经说过的
$a ?? $b
是简写 (isset($a)) ? $a : $b;
但是,isset()
如果变量未定义或定义为 null,则该函数返回 false。而!empty()
如果 var 未定义或具有空值或非零值,则返回 FALSE。所以你不能使用??
for !empty()
。
你可以用
$a ?: $b
这是一个简写
((bool)$a) ? $a : $b;
简而言之((bool)$a) == (!empty($a))
始终为真,除非$a
是从空标签创建的 SimpleXML 对象。
但是,在您的情况下,既?!
不会也??
不会起作用,因为' string1 ' . $Data->title
总是非空且已定义。
- 1 回答
- 0 关注
- 182 浏览
添加回答
举报
0/150
提交
取消