Re: [RFC] Duration class

From: Date: Sat, 20 Jun 2026 11:45:15 +0000
Subject: Re: [RFC] Duration class
References: 1 2 3 4 5  Groups: php.internals 
Request: Send a blank email to internals+get-131420@lists.php.net to get a copy of this message
On Sat, Jun 20, 2026 at 1:01 PM Tim Düsterhus <tim@bastelstu.be> 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

« previous php.internals (#131420) next »