Re: [RFC] Increment/Decrement Fixes

From: 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 > >

« previous php.internals (#108802) next »