【问题标题】:Can I use a ternary in a PHP class method return statement?我可以在 PHP 类方法返回语句中使用三元吗?
【发布时间】:2011-04-06 08:27:53
【问题描述】:

我可以这样做吗? (我目前无法测试以亲自查看)

public function overSimplifiedTernaryTest($condition = false) {
    return ($condition) ? 'someString' : 'someOtherString';
}

【问题讨论】:

  • 是的。 (评论是因为这不值得代表点...)
  • 这是一个值得关注的问题。 :)
  • 这个条件算子测试真的简化了吗?
  • 您可以在 codepad.org 测试代码示例
  • 我知道它有效,但我认为这是一个有效的问题。当我在 PHP.org 上看到 this note 时,这让我怀疑这何时可能不起作用。 注意:请注意,三元运算符是一个语句,它的计算结果不是变量,而是语句的结果。了解是否要通过引用返回变量很重要。语句 return $var == 42 ? $a : $b;因此,在按引用返回的函数中将不起作用,并且在以后的 PHP 版本中会发出警告。

标签: php return-value ternary-operator


【解决方案1】:

它有效,下次您可以使用ideone.com 来测试您的代码而不是提问。

您的代码:http://ideone.com/2oHkF

您也可以参考this question 获取额外的在线工具来测试您的代码。

【讨论】:

  • 其实 TheMagician 推荐了 codepad.org,这两个都很棒。谢谢!
  • @Stephen 你也可以看看我刚刚添加的链接,供其他在线工具测试你的代码。
【解决方案2】:

这是有效的。

例子:

class CClass
{
    public function overSimplifiedTernaryTest($condition = false)
    {
        return ($condition) ? 'someString' : 'someOtherString';
    }
}

$x = new CClass();
echo $x->overSimplifiedTernaryTest(false) . 
     '\r\n' . 
     $x->overSimplifiedTernaryTest(true);
delete $x;

【讨论】:

    【解决方案3】:

    三元运算符将返回一个值,这就是你从函数中返回的值。这就是为什么您尝试做的事情没有问题的原因。它也适用于其他语言,例如,您也可以在 Javascript 中执行此操作。

    【讨论】:

      【解决方案4】:

      是的,你可以这样做。

      Example

      【讨论】:

        猜你喜欢
        • 2021-07-22
        • 2022-01-17
        • 2015-11-07
        • 2015-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多