Re: [RFC] Path to Saner Increment/Decrement operators
| From: | Claude Pache | Date: | Wed, 18 Jan 2023 17:57:15 +0000 |
| Subject: | Re: [RFC] Path to Saner Increment/Decrement operators | ||
| References: | 1 2 3 4 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-119327@lists.php.net to get a copy of this message | ||
> Le 18 janv. 2023 à 18:27, Kamil Tekiela <tekiela246@gmail.com> 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