Нет, это не просто пойти на
return $this->getRow()->discountPercent ? false : true
На самом деле, это не так. Вы должны вернуть false, если discountPercent равен нулю. В предложенном коде, если discountPercent равен нулю, он будет оценивать значение false, поскольку он используется как условие и возвращает true.
Если вы действительно хотите сохранить ту же логику, но сделать его короче лучший способ пойти об этом было бы:
return $this->getRow()->discountPercent != 0
У меня есть правило, я всегда следовать: Если результат условного оператора является boolean, а затем return/condition. Кроме того, я не согласен с тем, что письмо:
return 0 == $this->getRow()->discountPercent ? false : true;
делает код более удобочитаемым. Если мы пойдем по тому, что функция должна делать, я хотел бы написать что-то вроде этого:
return $this->getRow()->discountPercent > 0
, который ясно показывает, что если discountPercent имеет значение больше нуля, то дисконтируется. Простой, точный и понятный. Затем он также берет на себя отрицательные значения.
это будет, до тех пор, как скидкаpercentage возвращает логическое значение. Первый лучше читать и понимать в будущем. – dmaij
«Преимущество» оператора состоит в том, чтобы дать понять, что вы сравниваете процент скидки с 0. – Barmar