2012-08-15 103 views
0

我遇到了PHP中三元操作的新语法。在PHP中,三元运算符左侧的大于号符号是做什么的?

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

如果结果值大于左侧变量的现有值,这是否仅适用于三元操作?

+5

不,这是条件。从字面上看,“如果totalNumber大于itemsPerPage”。 – kevin628 2012-08-15 14:21:00

+2

写过这封信的人应该......我会称之为短手笨蛋手术。 – PeeHaa 2012-08-15 14:50:21

回答

12

这只是比较操作。

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

现在更好的方式来写这将是简单地做:

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

我很喜欢这个解决方案。它比第一个例子好得多。 – martynthewolf 2012-08-15 14:24:42

2

它看起来像所有的代码做的是评估表达

$this->view->totalNumber > $itemsPerPage 

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

括号括起来会更清楚:

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

真的,人们如果它可以帮助你了解你可以把它改写这个样子。你们都应该感到羞耻。

+0

不知道他们是驯服的还是天狼星... – 2012-08-15 14:37:01

+0

不好说 – 2012-08-15 15:09:15

0

这是一个速记if语句。更复杂的版本

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

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

相关问题