Re: [RFC] Nullable Types

From: Date: Sun, 24 Apr 2016 15:18:21 +0000
Subject: Re: [RFC] Nullable Types
References: 1 2 3 4 5 6 7 8 9 10 11 12  Groups: php.internals 
Request: Send a blank email to internals+get-92694@lists.php.net to get a copy of this message
Hi Thomas, Sorry for the delay. I was traveling last week. By convention return; in PHP is an early return for a function that returns nothing at all. I think it can be confusing when reading a function to look at a return; line and have to remember to look elsewhere to discover what that means. And it can mean something different in every function. I prefer to write functions that return only the declared type. In some cases I need to write functions that return only the declared type or null. That's the limit of what I think PHP 7.1 should provide. Hence, for me this has no attraction but it does introduce new ways to write bugs. So I am not enthusiastic. Tom On 4/21/16, 12:33 PM, "Thomas Bley" <mails@thomasbley.de> wrote: >Hello Tom, > >with default return value I mean to return a certain value if nothing >else is returned (similar to method parameters with a default value). > >example 1: > >declare(strict_types=0); > >function my_strpos(string $haystack, string $needle): int = false { > return 42; // return 42 > return false; // return false > return true; // return 1 > return; // return false >} > >example 2: > >declare(strict_types=1); > >function my_strpos(string $haystack, string $needle): int = false { > return 42; // return 42 > return false; // return false > return true; // fatal error > return; // return false >} > >Regards >Thomas > > >fsb@thefsb.org wrote on 21.04.2016 15:05: > >> Hi Thomas, >> >> >> What is a default return declaration? Is this for branches within the >>function >> that do not lead to a return statement? >> >> >> Tom >> >> >> >> >> >> From: Thomas Bley >> Sent: ‎Wednesday‎, ‎April‎ ‎20‎, ‎2016 ‎12‎:‎53‎ ‎PM >> To: guilhermeblanco@gmail.com, cornelius.howl@gmail.com, dmitry@zend.com >> Cc: fsb@thefsb.org, internals@lists.php.net >> >> >> >> >> >> What do you think about default return values? >> >> e.g. >> >> function foo(): db_result = null { >> } >> >> function canLogin(): bool = false { >> } >

« previous php.internals (#92694) next »