On Wed, Sep 18, 2024, at 01:12, K Sandvik wrote: > Operator overloading is indeed a very overloaded topic concerning computer > languages. > > But my 0.02 cents is that it's a good thing to have provided it solves one or > more of the problems such as:
Hey Kent, > * Will the code be easier to write, maintain, and read? Just imagine being able to ignore the whole DateInterval class. Maybe one day we could write $datetime + ‘2 minutes’ and it “just work” instead of writing PT2M or using special libraries. Another example is to consider how most people do time durations in php: 5 * MINUTE_IN_SECONDS. or something like this. They are usually stored as integers. If you had a units library of time, you could write 5 * MINUTE where MINUTE is a one minute unit object (Which also begs the question of whether operators are “constant expressions” when defined…) so that a unit object is stored instead of an integer, preventing mistakes or having to dig through the code to find out what units “$timeout” is in. > * Will this help with optimizations? I’m not sure what you mean by this. > * Will this provide new paradigms that are useful for architectural solutions? I think it could. For example a Host + Port + Path objects could result in a URI object. Or a DI container could use it to express service dependencies more succinctly. > * or anything else practical and not based on the idea that 'php needs it as > it's available in other languages? > > > --Kent I think it is worth pointing out that you can already do “operator overloading” in PHP, so long as your operators are emojis and you don’t mind how it looks… 😂 https://3v4l.org/gQKTb In all seriousness though, php has classes because other languages have classes. It’s a valid argument but maybe not a strong one. — Rob