当一个函数似乎在 PHP 三元运算符中被使用两次时,它多久会被调用一次?

How often will a function be called when it seems te be used twice in a PHP ternary operation?

当我像这样在 PHP 中使用三元运算时:

$dataObject = $this->someInstance->getDataFromDB(); //getDataFromDB() for example returns an object or false. It gets data from a database ;-)
$variable = !$dataObject ? false : $dataVariable;

然后getDataFromDB()被调用一次。

但是当我像这样使用三元操作时,它被调用的频率以及从数据库中获取数据的频率是多少:

$variable = !$this->someInstance->getDataFromDB() ? false : $this->someInstance->getDataFromDB();

我更喜欢第一个版本,因为它性能更好。

感谢您的回答。

在第二个示例中,如果第一个表达式的计算结果为 false,则 getDataFromDB() 可能会被调用两次,或者您可以这样做:

$variable = !($d = $this->someInstance->getDataFromDB()) ? false : $d;

或者可能:

$variable = $this->someInstance->getDataFromDB() ?: false;

我假设这两个 : 是错字。