我在 PHP 中遇到了一种用于三元运算的新语法。
$this->view->totalNumber > $itemsPerPage ? $this->view->renderPaginator = true
: $this->view->renderPaginator = false;
如果结果值大于左侧变量的现有值,这是仅应用三元运算的某种速记吗?
我在 PHP 中遇到了一种用于三元运算的新语法。
$this->view->totalNumber > $itemsPerPage ? $this->view->renderPaginator = true
: $this->view->renderPaginator = false;
如果结果值大于左侧变量的现有值,这是仅应用三元运算的某种速记吗?
这只是比较操作。如果它有助于您理解,您可以像这样重写它:
($this->view->totalNumber > $itemsPerPage) ? $this->view->renderPaginator = true : $this->view->renderPaginator = false;
现在编写它的更好方法是简单地执行以下操作:
$this->view->renderPaginator = ($this->view->totalNumber > $itemsPerPage);
$this->view->renderPaginator = $this->view->totalNumber > $itemsPerPage;
真的,人们。你们都应该感到羞耻。
看起来代码所做的只是评估表达式
$this->view->totalNumber > $itemsPerPage
它解析为布尔值 true 或 false,然后由三元运算符检查。
用括号括起来会更清楚:
($this->view->totalNumber > $itemsPerPage) ? $this->view->renderPaginator = true : $this->view->renderPaginator = false;
这是 if 语句的简写。更复杂的版本
($a > $b) ? "execute here if a is greater than b" : "here if not";
因此,大于符号™ 就像比较运算符一样工作。