Shorthandisset(),如果没有,return默认值

Shorthand isset(), if not, return default value

我正在 PHP 中寻找此代码的 shorthand 版本:

$address = isset($node->field_naam_adres['und'][0]['value']) ? $node->field_naam_adres['und'][0]['value'] : '';

基本上,我想检查变量是否已设置,如果没有,则return一个默认值。

如果你可以依靠真假而不是更直接的 isset,你可以像这样在三元中省略中间语句:

$address = $node->field_naam_adres['und'][0]['value'] ?: '';

如果第一个语句的 return 值评估为真值,则该值将被 returned,否则将使用回退。您可以看到各种值将评估为布尔值 here

请务必注意,如果您使用此模式,则不能将初始语句包装在 issetempty 或任何类似函数中。如果这样做,该语句中的 return 值将简单地变成一个布尔值。因此,虽然上面的代码将 return $node->field_naam_adres['und'][0]['value'] 的值或空字符串,但以下代码:

$address = isset($node->field_naam_adres['und'][0]['value']) ?: '';

将 return TRUE 或空字符串。

:

之前 php 7 : 没有

$address = isset($node->field_naam_adres['und'][0]['value']) ? $node->field_naam_adres['und'][0]['value'] : '';

来自 php 7 : 是

$address = $node->field_naam_adres['und'][0]['value'] ?? 'default';