Re: [RFC] Increment/Decrement Fixes
| From: | Marco Pivetta | Date: | Mon, 02 Mar 2020 14:00:21 +0000 |
| Subject: | Re: [RFC] Increment/Decrement Fixes | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-108802@lists.php.net to get a copy of this message | ||
Hey Rowan,
Overall against the RFC:
++ and -- (prefix and suffix) are supposed to
be used with numeric values, not with other types, as that makes everything
only more confusing.
Code written (intentionally) to use ++ and -- against non-numeric
values should **NOT** pass a code review, and I am sorry for those that
have to maintain it if that happens.
Changing the current behavior, regardless in which way, is a BC break:
might as well make the BC break useful:
RFC Proposal: $a = null; $a--; $a === -1. Let's make this an explicit
TypeError instead.
RFC Proposal: $a = null; --$a; $a === -1. Let's make this an explicit
TypeError instead.
RFC Proposal: $a = true; $a++; $a === 2. Let's make this an explicit
TypeError instead.
RFC Proposal: $a = true; ++$a; $a === 2. Let's make this an explicit
TypeError instead.
RFC Proposal: $a = true; $a--; $a === 0. Let's make this an explicit
TypeError instead.
RFC Proposal: $a = true; --$a; $a === 0. Let's make this an explicit
TypeError instead.
RFC Proposal: $a = false; $a++; $a === 1. Let's make this an explicit
TypeError instead.
RFC Proposal: $a = false; ++$a; $a === 1. Let's make this an explicit
TypeError instead.
RFC Proposal: $a = false; $a--; $a === -1. Let's make this an explicit
TypeError instead.
RFC Proposal: $a = false; --$a; $a === -1. Let's make this an explicit
TypeError instead.
In **addition** to that, we may propose removal of ++, -- and similar
from non-numeric types (will lead to TypeError) like Andrea started in
https://wiki.php.net/rfc/invalid_strings_in_arithmetic
It makes no sense to keep a landmine there: let's get rid of it, instead of
empowering it further (and breaking BC too, while doing so).
Marco Pivetta
http://twitter.com/Ocramius
http://ocramius.github.com/
On Sun, Mar 1, 2020 at 10:23 PM Rowan Tommins <rowan.collins@gmail.com>
wrote:
> Hi all,
>
> Following my thread a couple of weeks ago, I would like to put forward
> an RFC to fix some inconsistencies with the behaviour of the ++ and --
> operators:
>
> https://wiki.php.net/rfc/increment_decrement_fixes
>
> Note that this RFC focusses on three specific cases which I think could
> be considered bugs, but require breaking compatibility:
>
> 1) Bring the behaviour of decrementing null in line with subtracting 1
> (and with the equivalent increment operator)
> 2) Bring the behaviour of incrementing or decrementing true and false in
> line with adding or subtracting 1
> 3) Throw the same error when incrementing or decrementing an array as
> when adding or subtracting 1
>
> I believe the behaviour of strings, objects, and resources, each raise
> sufficient extra questions that they should be left to future RFCs where
> we can focus on each in more detail.
>
> Please read the RFC for more detail on what is and isn't proposed.
>
> Regards,
>
> --
> Rowan Tommins (né Collins)
> [IMSoP]
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>