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
请务必注意,如果您使用此模式,则不能将初始语句包装在 isset
、empty
或任何类似函数中。如果这样做,该语句中的 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';
我正在 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
请务必注意,如果您使用此模式,则不能将初始语句包装在 isset
、empty
或任何类似函数中。如果这样做,该语句中的 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';