Re: Union types | true pseudo-type

From: Date: Mon, 27 Jan 2020 09:42:52 +0000
Subject: Re: Union types | true pseudo-type
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-108263@lists.php.net to get a copy of this message
On Mon, Jan 20, 2020 at 6:30 PM Benjamin Morel <benjamin.morel@gmail.com> wrote: > Hi internals, > > I'd like to bring back the topic of supporting "true" as a type in PHP 8 > union types. > Now that the RFC > <https://wiki.php.net/rfc/union_types_v2> has been > successfully voted, I'd like to revive the discussion about adding the > "true" pseudo-type in addition to "false". > > In addition to my Packagist survey > <https://externals.io/message/106844#107304>, I'd > like to point out that I > just came across a native method in the SSH2 extension, that does use true > as a type: > > https://www.php.net/manual/en/function.ssh2-auth-none.php > > > Returns TRUE if the server does accept "none" as an authentication method, > > or an array of accepted authentication methods on failure. > > > > Of course, you could type-hint it array|bool, but the same could be said > for |false. > > Thoughts? > Generally I'm fine with also allowing the "true" type. We certainly have quite a few extension methods that return isolated true values for legacy reasons. However, before "true" is allowed, it is important to answer the two questions at the end of https://wiki.php.net/rfc/union_types_v2#literal_types. Namely, how do true/false interact with weak typing coercions (currently "false" only accepts "false", but not 0 or "") and whether true|false should be equivalent to bool (also related to the previous question). Regards, Nikita

« previous php.internals (#108263) next »