Nem*_*mic 2 php null-coalescing-operator
我有很多这样的代码
$Var = !empty($Data->title) ? ' string1 ' . $Data->title : ' string2 ' . $Var2;
Run Code Online (Sandbox Code Playgroud)
我在网上搜索了一下,发现?? (Null coalescing operator)
因此,我认为可以做这样的事情
$Var = ' string1 ' . $Data->title ?? ' string2 ' . $Var2;
Run Code Online (Sandbox Code Playgroud)
我问这个是因为我知道??用于isset()或NULL但我需要empty()我的项目代码。
正如你已经说过的
$a ?? $b
Run Code Online (Sandbox Code Playgroud)
是一个简写形式(isset($a)) ? $a : $b;
isset()但如果变量未定义或定义为 null,则该函数返回 false。而!empty() 如果 var 未定义或者具有空值或非零值,则返回 FALSE。所以你不能使用??for !empty()。
你可以使用
$a ?: $b
Run Code Online (Sandbox Code Playgroud)
这是一个简写
((bool)$a) ? $a : $b;
Run Code Online (Sandbox Code Playgroud)
以下是将变量转换为布尔值的规则。
简而言之,((bool)$a) == (!empty($a))总是 true,除非 if$a是从空标签创建的 SimpleXML 对象。
但是,就您而言,?!或 都??不起作用,因为' string1 ' . $Data->title始终非空且已定义。
| 归档时间: |
|
| 查看次数: |
413 次 |
| 最近记录: |