Как часто будет вызываться функция, когда она, кажется, будет использоваться дважды в тройной операции PHP? - PullRequest
0 голосов
/ 05 марта 2020

Когда я использую троичную операцию в 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();

Я бы предпочел первую версию, когда она работает лучше.

Спасибо за ваши ответы.

1 Ответ

0 голосов
/ 05 марта 2020

Во втором примере getDataFromDB() может вызываться дважды, если первое выражение оценивается как false, или вы можете сделать это следующим образом:

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

Или, возможно:

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

Я предполагаю, что два : были опечаткой.

...