【问题标题】:What does the greater than symbol do on the left side of a ternary operator in PHP?PHP中三元运算符左侧的大于号有什么作用?
【发布时间】:2012-08-11 20:22:44
【问题描述】:

我在 PHP 中发现了一种用于三元运算的新语法。

$this->view->totalNumber > $itemsPerPage ? $this->view->renderPaginator = true 
                                         : $this->view->renderPaginator = false;

如果结果值大于左侧变量的现有值,这是仅应用三元运算的某种速记吗?

【问题讨论】:

  • 不,这是条件。从字面上看,“如果 totalNumber 大于 itemsPerPage”。
  • 写那个的人应该是……我会称那个短手白痴操作。

标签: php syntax ternary-operator


【解决方案1】:

这是一个简写的 if 语句。一个更复杂的版本

($a > $b) ? "execute here if a is greater than b" : "here if not";

因此,大于符号™ 就像比较运算符一样工作。

【讨论】:

    【解决方案2】:
    $this->view->renderPaginator = $this->view->totalNumber > $itemsPerPage;
    

    真的,人们。你们都应该感到羞耻。

    【讨论】:

      【解决方案3】:

      这只是比较操作。如果能帮助你理解,你可以这样改写:

      ($this->view->totalNumber > $itemsPerPage) ? $this->view->renderPaginator = true : $this->view->renderPaginator = false;
      

      现在更好的编写方法是:

      $this->view->renderPaginator = ($this->view->totalNumber > $itemsPerPage);
      

      【讨论】:

      • 我非常喜欢这个解决方案。它比第一个例子好得多。
      【解决方案4】:

      看起来代码所做的只是评估表达式

      $this->view->totalNumber > $itemsPerPage
      

      解析为布尔真或假,然后由三元运算符检查。

      用括号括起来会更清楚:

      ($this->view->totalNumber > $itemsPerPage) ? $this->view->renderPaginator = true : $this->view->renderPaginator = false; 
      

      【讨论】:

        猜你喜欢
        • 2017-07-16
        • 2019-10-02
        • 2020-08-16
        • 2017-01-27
        • 2018-01-12
        • 2012-05-15
        • 2010-10-18
        • 2013-05-14
        • 2010-12-10
        相关资源
        最近更新 更多