我遇到了PHP中三元操作的新语法。在PHP中,三元运算符左侧的大于号符号是做什么的?
$this->view->totalNumber > $itemsPerPage ? $this->view->renderPaginator = true
: $this->view->renderPaginator = false;
如果结果值大于左侧变量的现有值,这是否仅适用于三元操作?
我遇到了PHP中三元操作的新语法。在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);
我很喜欢这个解决方案。它比第一个例子好得多。 – martynthewolf 2012-08-15 14:24:42
它看起来像所有的代码做的是评估表达
$this->view->totalNumber > $itemsPerPage
解析为一个布尔值true或false,然后由三元运算符检查。
括号括起来会更清楚:
($this->view->totalNumber > $itemsPerPage) ? $this->view->renderPaginator = true : $this->view->renderPaginator = false;
$this->view->renderPaginator = $this->view->totalNumber > $itemsPerPage;
真的,人们如果它可以帮助你了解你可以把它改写这个样子。你们都应该感到羞耻。
不知道他们是驯服的还是天狼星... – 2012-08-15 14:37:01
不好说 – 2012-08-15 15:09:15
这是一个速记if语句。更复杂的版本
($a > $b) ? "execute here if a is greater than b" : "here if not";
因此,大于符号™的作用就像比较运算符一样。
不,这是条件。从字面上看,“如果totalNumber大于itemsPerPage”。 – kevin628 2012-08-15 14:21:00
写过这封信的人应该......我会称之为短手笨蛋手术。 – PeeHaa 2012-08-15 14:50:21