PHPでの三項演算の新しい構文に出くわしました。
$this->view->totalNumber > $itemsPerPage ? $this->view->renderPaginator = true
: $this->view->renderPaginator = false;
これは、結果の値が左側の変数の既存の値よりも大きい場合にのみ、三項演算を適用するためのある種の省略形ですか?
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);
$this->view->renderPaginator = $this->view->totalNumber > $itemsPerPage;
本当に、人々。あなたは皆恥じるべきです。
コードが実行しているのは式の評価だけのようです
$this->view->totalNumber > $itemsPerPage
これはブール値のtrueまたはfalseに解決され、三項演算子によってチェックされます。
括弧で囲むと、より明確になります。
($this->view->totalNumber > $itemsPerPage) ? $this->view->renderPaginator = true : $this->view->renderPaginator = false;
これはifステートメントの省略形です。より複雑なバージョン
($a > $b) ? "execute here if a is greater than b" : "here if not";
したがって、大なり記号™は比較演算子として機能します。