【问题标题】:PHP assignment with a default value带默认值的 PHP 赋值
【发布时间】:2011-06-17 10:56:29
【问题描述】:

有什么更好的方法来执行以下操作,不调用 f() 两次?

$x = f() ? f() : 'default';

【问题讨论】:

    标签: php variable-assignment default-value


    【解决方案1】:

    在 PHP 5.3 中,您还可以这样做:

      $a = f() ?: 'default';
    

    the manual on ?: operator

    【讨论】:

    • +1,因为我还没有看到在我的任何涉及 PHP 5.3 的书中使用过它。很高兴知道。
    【解决方案2】:

    这似乎工作正常:

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

    【讨论】:

      【解决方案3】:
      function f()
      {
        // conditions 
        return $if_something ? $if_something : 'default';
      }
      
      $x = f();
      

      【讨论】:

      • 啊,很好的答案。我的意思是 f() 是我们无法控制的东西,事实上,这对我来说根本不是一个函数,而是$_REQUEST['foo'],所以这与其说是效率问题,不如说是打字问题。
      【解决方案4】:
      $x = ($result = foo()) ? $result : 'default';
      

      test

      【讨论】:

      • 这行得通,但看起来它可以做得更干净,没有临时变量。
      【解决方案5】:

      您可以将其保存到变量中。测试用例:

      function test() {
              echo 'here';
              return 1;
      }
      
      $t = test();
      $x = $t ? $t : 0;
      echo $x;
      

      【讨论】:

        猜你喜欢
        • 2017-08-24
        • 2018-08-20
        • 2016-08-22
        • 1970-01-01
        • 1970-01-01
        • 2010-09-14
        • 2012-07-11
        • 2013-08-09
        • 2017-07-12
        相关资源
        最近更新 更多