> Le 18 janv. 2023 à 18:27, Kamil Tekiela <[email protected]> a écrit :
>
> Strings should not be incrementable unless they are numeric strings. The
> current "feature" is more like a bug from xkcd comic. https://xkcd.com/1172/
>
> But as there is a real need for a similar functionality, for example when
> working with Excel, I would propose to add a class into the language that
> is able to calculate and iterate any bijective base system. It needs to
> have a clear functional spec and should support both increment/decrement
> operators as well as iterators. I see this as the only way out of this
> mess. This RFC needs to pass, but it cannot pass without an alternative for
> people who actually use this "feature".
For those that lack imagination about possible use cases, here is mine:
generating unique (in the scope of the request) alphabetic ids:
function nextid(): string {
static $id = 'zz';
return ++$id;
}
But no over-engineering please: no class and no decrement equivalent (the
latter could be added in a separate RFC if it is really deemed useful), just a
plain function that replicate the current behaviour for strings of the form
/^[A-Za-z0-9]*$/, minus the bugs around the peculiar notion of “numeric string”
(e.g., "9E1" equivalent to 90).
—Claude