[RFC] [VOTE] Allow null and false as stand-alone types

php.internals

Girgias

4 years ago
I've started voting for the Allow null and false as stand-alone types RFC: https://wiki.php.net/rfc/null-false-standalone-types Voting will last for 2 weeks until 26th of March. Best regards, George P. Banyard

David Rodrigues

4 years ago
Maybe I'm a little late to this discussion, but is there any reason why *false|null* is allowed but *true|null* is not? I can think of few cases where *true|null* could be interesting, but I've been through situations like this. Atenciosamente, David Rodrigues Em sáb., 12 de mar. de 2022 às 14:32, G. P. B. <george.banyard@gmail.com> escreveu:

Girgias

4 years ago
On Sat, 12 Mar 2022 at 18:18, David Rodrigues <david.proweb@gmail.com> wrote:
> Maybe I'm a little late to this discussion, but is there any reason why > *false|null* is allowed but *true|null* is not? > > I can think of few cases where *true|null* could be interesting, but I've > been through situations like this. >
true is not a type in PHP compared to false, therefore it is not included. I'm working on a proposal to add true as a type to PHP, but that's a seperate RFC and discussion. Best regards, George P. Banyard

Côme Chilliet

4 years ago
Le samedi 12 mars 2022, 19:30:00 CET G. P. B. a écrit :
> true is not a type in PHP compared to false, therefore it is not included. > I'm working on a proposal to add true as a type to PHP, but that's a > seperate RFC and discussion.
Was there ever an RFC for adding literal values to the type system? This would solve all these problems by allowing stuff like: function foobar(): "foo"|"bar"|true { } Côme

Derick Rethans

4 years ago
On 15 March 2022 15:41:45 GMT, "Côme Chilliet" <come@chilliet.eu> wrote:
>Le samedi 12 mars 2022, 19:30:00 CET G. P. B. a écrit : >> true is not a type in PHP compared to false, therefore it is not included. >> I'm working on a proposal to add true as a type to PHP, but that's a >> seperate RFC and discussion. > >Was there ever an RFC for adding literal values to the type system? >This would solve all these problems by allowing stuff like: > >function foobar(): "foo"|"bar"|true { >}
It's called enums ;-), so yes! cheers Derick

Unnamed Person

4 years ago
On Sat, Mar 12, 2022 at 10:32 AM G. P. B. <george.banyard@gmail.com> wrote:
> > I've started voting for the Allow null and false as stand-alone types RFC: > https://wiki.php.net/rfc/null-false-standalone-types > > Voting will last for 2 weeks until 26th of March. > > Best regards, > > George P. Banyard
Hello, I have voted yes, despite this clause:
> Moreover, a function which has a void return type must only use return; whereas one with null must use return null;.
IMO, it should allow any expression including just `return;` and let the runtime fail if it needs to.

Girgias

4 years ago
On Thu, 17 Mar 2022 at 15:54, Levi Morrison <levi.morrison@datadoghq.com> wrote:
> On Sat, Mar 12, 2022 at 10:32 AM G. P. B. <george.banyard@gmail.com> > wrote: > > > > I've started voting for the Allow null and false as stand-alone types > RFC: > > https://wiki.php.net/rfc/null-false-standalone-types > > > > Voting will last for 2 weeks until 26th of March. > > > > Best regards, > > > > George P. Banyard > > Hello, > > I have voted yes, despite this clause: > > > Moreover, a function which has a void return type must only use return; > whereas one with null must use return null;. > > IMO, it should allow any expression including just `return;` and let > the runtime fail if it needs to. >
This behaviour is the current behaviour in PHP, see: https://3v4l.org/1m0Mk and https://3v4l.org/d19rd It might make sense to change this, but this is out of scope for this RFC. Best regards, George P. Banyard

Girgias

4 years ago
Hello internals, The RFC has been accepted unanimously in favour with 38 votes. Best regards, George P. Banyard