Bug #69804 [Opn]: ReflectionClass::getStaticPropertyValue() throws exception on protected props
| From: | laruence@php.net | Date: | Fri, 12 Jun 2015 01:33:49 +0000 |
| Subject: | Bug #69804 [Opn]: ReflectionClass::getStaticPropertyValue() throws exception on protected props | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-193350@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=69804&edit=1
ID: 69804
Updated by: laruence@php.net
Reported by: grzegorz129 at gmail dot com
Summary: ReflectionClass::getStaticPropertyValue() throws
exception on protected props
Status: Open
Type: Bug
Package: Reflection related
Operating System: OSX, Linux
PHP Version: 7.0Git-2015-06-11 (snap)
-Assigned To:
+Assigned To: laruence
Block user comment: N
Private report: N
New Comment:
hmm, setAccess doesn't change the property_info... will think about a proper hack fix..
Previous Comments:
------------------------------------------------------------------------
[2015-06-11 22:19:25] grzegorz129 at gmail dot com
Description:
------------
Trying to use ReflectionClass::getStaticPropertyValue() on protected static properties of class
results in exception with information about non existing property. However
ReflectionClass::getStaticProperties() returns that property with correct value on all supported PHP
versions.
Adding ReflectionProperty::setAccessible(true) doesn't affect final effect.
Of course I can use getStaticProperties() array, but maybe getStaticPropertyValue() should be fixed
or at least some documentation note be added?
After research I found it's related to #54620, but maybe setAccessible() should also affect
getStaticPropertyValue() call?
Test script:
---------------
<?php
class foo {
protected static $test = 'bar';
}
$classReflection = new ReflectionClass('foo');
$property = $classReflection->getProperty('test');
var_dump($property);
$property->setAccessible(true); //Changes nothing in that case
var_dump($classReflection->getStaticProperties());
var_dump($classReflection->getStaticPropertyValue('test'));
Actual result:
--------------
http://3v4l.org/om1lZ
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=69804&edit=1