我遇到了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