当一个函数似乎在 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;
我假设这两个 :
是错字。
当我像这样在 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;
我假设这两个 :
是错字。