2012-08-15 50 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"; 

因此,大於符號™的作用就像比較運算符一樣。

相關問題