0

PHPでの三項演算の新しい構文に出くわしました。

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

これは、結果の値が左側の変数の既存の値よりも大きい場合にのみ、三項演算を適用するためのある種の省略形ですか?

4

4 に答える 4

12

単なる比較操作です。理解しやすい場合は、次のように書き直すことができます。

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

今、それを書くためのより良い方法は、単に行うことです:

$this->view->renderPaginator = ($this->view->totalNumber > $itemsPerPage);
于 2012-08-15T14:22:29.713 に答える
4
$this->view->renderPaginator = $this->view->totalNumber > $itemsPerPage;

本当に、人々。あなたは皆恥じるべきです。

于 2012-08-15T14:25:42.490 に答える
2

コードが実行しているのは式の評価だけのようです

$this->view->totalNumber > $itemsPerPage

これはブール値のtrueまたはfalseに解決され、三項演算子によってチェックされます。

括弧で囲むと、より明確になります。

($this->view->totalNumber > $itemsPerPage) ? $this->view->renderPaginator = true : $this->view->renderPaginator = false; 
于 2012-08-15T14:22:27.677 に答える
0

これはifステートメントの省略形です。より複雑なバージョン

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

したがって、大なり記号™は比較演算子として機能します。

于 2012-08-15T14:27:07.190 に答える