Какой лучший способ сделать следующее, который не вызывает f () дважды?
$x = f() ? f() : 'default';
В PHP 5.3 вы также можете сделать:
$a = f() ?: 'default';
См. руководство по?: Оператор .
Это, кажется, работает нормально:
$x = f() or $x = 'default';
function f() { // conditions return $if_something ? $if_something : 'default'; } $x = f();
$x = ($result = foo()) ? $result : 'default';
тест
Вы можете сохранить его в переменной. TestCase:
function test() { echo 'here'; return 1; } $t = test(); $x = $t ? $t : 0; echo $x;