PHP带有默认值的赋值语句

12

有没有更好的方法来实现以下操作,而不需要调用两次f()函数?

$x = f() ? f() : 'default';
5个回答

30

1
+1,因为我在覆盖PHP 5.3的任何书籍中都没有看到过这种用法。非常好知道。 - Andrew

8

这似乎可以正常工作:

$x = f() or $x = 'default';

2
function f()
{
  // conditions 
  return $if_something ? $if_something : 'default';
}

$x = f();

啊,好答案。我的意思是f()应该是我们无法控制的东西,实际上这对我来说并不是一个函数,而是$_REQUEST['foo'],所以这不是一个效率问题,更多的是一个打字问题。 - dreeves

1
$x = ($result = foo()) ? $result : 'default';

测试


这个可以运行,但是看起来可以更干净地完成,而且不需要临时变量。 - dreeves

0
你可以将它保存到一个变量中。测试用例:
function test() {
        echo 'here';
        return 1;
}

$t = test();
$x = $t ? $t : 0;
echo $x;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接