Bug #75824 [Opn->Nab]: Inconsistent handling of void/null optional return type hints

From: Date: Tue, 16 Jan 2018 15:43:42 +0000
Subject: Bug #75824 [Opn->Nab]: Inconsistent handling of void/null optional return type hints
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-213562@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=75824&edit=1 ID: 75824 Updated by: nikic@php.net Reported by: adam at nostradamus dot nu Summary: Inconsistent handling of void/null optional return type hints -Status: Open +Status: Not a bug Type: Bug Package: Scripting Engine problem Operating System: any PHP Version: 7.1.13 Block user comment: N Private report: N New Comment: This behavior is intentional. A non-void return type requires an explicit return value. A void return type conversely prohibits an explicit return value (including "return null"). Previous Comments: ------------------------------------------------------------------------ [2018-01-16 15:14:48] adam at nostradamus dot nu Description: ------------ We are running into an issue where a function that does not return any value fails in strict mode when an optional return type hint is applied. Observe the following php scripts: https://3v4l.org/o5ufU https://3v4l.org/5TIB5 (the only difference is the explicit null return in the second one) In my opinion, the first one should succeed as well, specifically since the strict check in the following script succeeds: https://3v4l.org/hn6F0 Expected result: ---------------- NULL int(1) Actual result: -------------- Fatal error: Uncaught TypeError: Return value of Foo::getTest() must be of the type integer or null, none returned in /in/o5ufU:10 Stack trace: #0 /in/o5ufU(15): Foo->getTest() #1 {main} thrown in /in/o5ufU on line 10 Process exited with code 255. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=75824&edit=1

« previous php.bugs (#213562) next »