#27265 [Com]: Reflection API :: Reflection_Property fails when a const is passed
| From: | D dot Kingma at jool dot nl | Date: | Wed, 09 Jun 2004 09:13:16 +0000 |
| Subject: | #27265 [Com]: Reflection API :: Reflection_Property fails when a const is passed | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-60630@lists.php.net to get a copy of this message | ||
ID: 27265
Comment by: D dot Kingma at jool dot nl
Reported By: jw at jwscripts dot com
Status: Bogus
Bug Type: Zend Engine 2 problem
Operating System: *
PHP Version: 5CVS-2004-02-15
New Comment:
I Think the problem your are describing is more that of that the
reflectionProperty class constructor doesn't work well with properties
that are written in capitals, as your example with static illustrates.
When you remove the static keyword the problem is reproducable (You
cannot initiate the reflectionProperty when the name of the property is
in capitals).
[Workaround]
You could use the getProperties method of the reflectionClass object
which will return the reflectionProperty object for variables that are
written in capitals.
Previous Comments:
------------------------------------------------------------------------
[2004-02-16 16:55:57] jw at jwscripts dot com
> We are missing a class 'Reflection_Const'.
IMO, you are not missing a Reflection_Const class, but a method
isConst() in the Reflection_Property class.
------------------------------------------------------------------------
[2004-02-16 15:04:18] helly@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
We are missing a class \'Reflection_Const\'.
------------------------------------------------------------------------
[2004-02-15 15:00:46] jw at jwscripts dot com
Description:
------------
When passing a constant to the constructor of the Reflection_Property
class, an exception is thrown.
You can work around this, e.g., by creating an instance of the
Reflection_Object class instead, but this isn't very pretty.
The same problem occurres when a constant with one or more uppercased
characters is defined, e.g.:
const $TEST = "foo";
Reproduce code:
---------------
<?
class Foo {
const TEST = "foo";
// Fails too: static $TEST = "foo";
// Success : static $test = "foo";
}
class Types extends Reflection_Property {
public function __construct($object, $name) {
parent::__construct($object, $name);
}
}
$types = new Types("Foo", "TEST");
?>
Expected result:
----------------
No output
Actual result:
--------------
Fatal error: Uncaught exception 'reflection_exception' with message
'Property Foo::$TEST does not exist' in [...] Stack trace: #0
[...](13): Types->__construct() #1 {main} thrown in [...] on line
[...]
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=27265&edit=1