Doc #69804 [Com]: ReflectionClass::getStaticPropertyValue() throws exception on protected props
| From: | grzegorz129 at gmail dot com | Date: | Sat, 13 Jun 2015 22:09:34 +0000 |
| Subject: | Doc #69804 [Com]: ReflectionClass::getStaticPropertyValue() throws exception on protected props | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-12414@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
Comment by: grzegorz129 at gmail dot com
Reported by: grzegorz129 at gmail dot com
Summary: ReflectionClass::getStaticPropertyValue() throws
exception on protected props
Status: Open
Type: Documentation Problem
Package: Reflection related
Operating System: OSX, Linux
PHP Version: 7.0Git-2015-06-11 (snap)
Block user comment: N
Private report: N
New Comment:
@laruence: I saw your another comment about method behaving similar in PHP 5.6 - you're right,
but I think implementation should be fixed instead of documentation, because that behaviour is
little strange.
It shouldn't break any code - who's calling setAccess(true) and expect it wouldn't
change that? :D
Previous Comments:
------------------------------------------------------------------------
[2015-06-12 01:33:48] laruence@php.net
hmm, setAccess doesn't change the property_info... will think about a proper hack fix..
------------------------------------------------------------------------
[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