On Sat, Jun 20, 2026 at 1:01 PM Tim Düsterhus <[email protected]> wrote:
> Hi > > Am 2026-06-19 12:25, schrieb ignace nyamagana butera: > > However, I would advise against introducing Duration::add and > > Duration::sub > > methods. Instead, I would recommend providing a single method, > > Duration::sum(Duration > > ...$durations): self. > > > > Given that a Duration already carries a sign and may therefore be > > either > > positive or negative, the presence of separate add and sub methods > > could > > create an implicit and potentially misleading notion of directional > > behavior. > > > > In contrast, a sum method using variadic arguments would allow multiple > > Duration instances to be combined in a natural and consistent manner. > > It > > would also avoid implying any expectation regarding the resulting sign, > > which may legitimately be either positive or negative depending on the > > input values. > > Can you clarify if you expect the `sum()` method to be a static method > or an instance method? If it's a static method, what would you expect > `Duration::sum()` (with an empty list of durations) to result in? Should > it be an Error, `Duration::fromSeconds(0)`, or perhaps something > entirely different? > > Best regards > Tim Düsterhus > > PS: Please don't forget to reply below the quoted parts; and to cut the > quoted parts to the relevant portion. > Hi Tim, I would make the method static and if no argument is given I would expect an ArgumentCountError to be thrown just like with array_sum. Best regards, Ignace
