|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
Patchesundef-dynamic-throw (last revision 2018-09-05 14:21 UTC by cmb@php.net)Pull RequestsHistoryAllCommentsChangesGit/SVN commits
[2012-07-30 11:50 UTC] cataphract@php.net
-Assigned To:
+Assigned To: cataphract
[2014-07-15 11:31 UTC] yohgaki@php.net
-PHP Version: master-Git-2012-07-30 (Git)
+PHP Version: *
[2014-07-15 11:31 UTC] yohgaki@php.net
[2017-10-24 08:13 UTC] kalle@php.net
-Status: Assigned
+Status: Open
-Assigned To: cataphract
+Assigned To:
[2018-09-05 14:21 UTC] cmb@php.net
[2018-09-05 14:22 UTC] cmb@php.net
-Status: Open
+Status: Verified
[2018-09-05 14:22 UTC] cmb@php.net
[2018-09-06 00:28 UTC] nikic@php.net
[2018-10-31 17:33 UTC] cmb@php.net
-Status: Verified
+Status: Closed
-Assigned To:
+Assigned To: cmb
[2018-10-31 17:33 UTC] cmb@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Nov 03 05:00:01 2025 UTC |
Description: ------------ The reflection extension does not allow obtaining ReflectionProperty objects for non existent properties, much less fetch their non existent value. However, this can be bypassed by creating a dynamic ReflectionProperty in another object. Test script: --------------- <?php class A {} $a = new A; $a->foo = "dynamic property"; $ro = new ReflectionObject($a); $prop = $ro->getProperty('foo'); try { var_dump($prop->getValue($a)); var_dump($prop->getValue(new A)); } catch (ReflectionException $ex) { echo "Caught!\n"; try { var_dump($prop->getValue(new A)); } catch (ReflectionException $ex) { var_dump($ex->getMessage()); } } Expected result: ---------------- string(16) "dynamic property" Caught! string(49) "Dynamic property does not exist in given instance" Actual result: -------------- string(16) "dynamic property" NULL