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 。