Doc #79206 [Fbk]: Access to an uninizialized property generates Error instead of TypeError

From: Date: Sat, 01 Feb 2020 22:32:00 +0000
Subject: Doc #79206 [Fbk]: Access to an uninizialized property generates Error instead of TypeError
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-17247@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=79206&edit=1 ID: 79206 Updated by: requinix@php.net Reported by: greedy dot ivan at gmail dot com Summary: Access to an uninizialized property generates Error instead of TypeError Status: Feedback Type: Documentation Problem Package: *General Issues PHP Version: 7.4.2 Block user comment: N Private report: N New Comment: > If this is a documentation error, how to fix it? I don't see where in the documentation (php.net/manual) it says accessing an uninitialized typed property results in a TypeError. Regarding the RFC itself, it is not the final documentation. Minor details may change during discussion and implementation and sometimes they don't always make it back into the originating RFC. > if this is an implementation error, it should be fixed. I don't believe that TypeError is proper for this situation: https://www.php.net/manual/en/class.typeerror.php > There are three scenarios where a TypeError may be thrown. The first is where the argument type > being passed to > a function does not match its corresponding declared parameter type. The second is where a > value being returned > from a function does not match the declared function return type. The third is where an invalid > number of > arguments are passed to a built-in PHP function (strict mode only). I don't see a more suitable error available https://www.php.net/manual/en/reserved.exceptions.php so a generic Error seems appropriate. Previous Comments: ------------------------------------------------------------------------ [2020-02-01 22:22:58] greedy dot ivan at gmail dot com If this is a documentation error, how to fix it? if this is an implementation error, it should be fixed. ------------------------------------------------------------------------ [2020-02-01 22:01:04] requinix@php.net Yes, that's right. What about it? ------------------------------------------------------------------------ [2020-02-01 12:55:52] greedy dot ivan at gmail dot com Description: ------------ > Reads from uninitialized properties will generate a TypeError -- https://wiki.php.net/rfc/typed_properties_v2#uninitialized_and_unset_properties Actually, it generates Error. Test script: --------------- <?php class Foo { public int $bar; } $foo = new Foo(); try { $foo->bar; } catch (\TypeError $te) { var_dump('TypeError catched'); } catch (\Error $e) { var_dump('Error catched'); } catch (\Throwable $t) { var_dump('Throwable catched'); } Expected result: ---------------- TypeError catched Actual result: -------------- Error catched ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=79206&edit=1

« previous php.doc.bugs (#17247) next »