0

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

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

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

4

4 回答 4

12

这只是比较操作。如果它有助于您理解,您可以像这样重写它:

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

现在编写它的更好方法是简单地执行以下操作:

$this->view->renderPaginator = ($this->view->totalNumber > $itemsPerPage);
于 2012-08-15T14:22:29.713 回答
4
$this->view->renderPaginator = $this->view->totalNumber > $itemsPerPage;

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

于 2012-08-15T14:25:42.490 回答
2

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

$this->view->totalNumber > $itemsPerPage

它解析为布尔值 true 或 false,然后由三元运算符检查。

用括号括起来会更清楚:

($this->view->totalNumber > $itemsPerPage) ? $this->view->renderPaginator = true : $this->view->renderPaginator = false; 
于 2012-08-15T14:22:27.677 回答
0

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

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

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

于 2012-08-15T14:27:07.190 回答