PHP Shorthand 布尔值
PHP Shorthand Boolean
我正在尝试缩短以下内容。本质上,只要 $object 不为空,我就想始终获取左手的值,否则使用默认值。
if ($object) {
$isManual = $object->getIsManual(); // either true or false
} else {
$isManual = true;
}
以下内容不起作用,因为 getIsManual 可以 return false 这使得它使用右手。
$isManual = $object ? $object->getIsManual() : true;
有什么变通办法吗?目前在 PHP 7.4.
澄清一下 - getIsManual()
的 return 值不会影响条件,它只会将 $object
评估为 'true' 或 'false' (其中包括 null)。
您可以在条件中显式检查 null...
$isManual = is_null($object) ? true : $object->getIsManual();
请注意,我已经颠倒了值的顺序,因为我更愿意说是 is_null
而不是使用 not 。
我正在尝试缩短以下内容。本质上,只要 $object 不为空,我就想始终获取左手的值,否则使用默认值。
if ($object) {
$isManual = $object->getIsManual(); // either true or false
} else {
$isManual = true;
}
以下内容不起作用,因为 getIsManual 可以 return false 这使得它使用右手。
$isManual = $object ? $object->getIsManual() : true;
有什么变通办法吗?目前在 PHP 7.4.
澄清一下 - getIsManual()
的 return 值不会影响条件,它只会将 $object
评估为 'true' 或 'false' (其中包括 null)。
您可以在条件中显式检查 null...
$isManual = is_null($object) ? true : $object->getIsManual();
请注意,我已经颠倒了值的顺序,因为我更愿意说是 is_null
而不是使用 not 。