Я знаю, что существует бесчисленное множество способов реализовать сложение или вычитание на основе флага, и я перечислил три из них. Мой последний пример является наиболее кратким, однако я был удивлен, что у меня не получился более semanti c подход. Если «лучший» определяется как самый лаконичный, интуитивно понятный и читаемый, каков наилучший подход для этого?
public function fromDaySeconds(bool $add=true):int
{
if ($add) {
return $this->getTimestamp() + $this->getDay()->getTimestamp();
}
else {
return $this->getTimestamp() - $this->getDay()->getTimestamp();
}
}
public function fromDaySeconds(bool $add=true):int
{
return $add
?$this->getTimestamp() + $this->getDay()->getTimestamp()
:$this->getTimestamp() - $this->getDay()->getTimestamp();
}
public function fromDaySeconds(bool $add=true):int
{
return $this->getTimestamp() + $this->getDay()->getTimestamp()*($add?1:-1);
}