Hi.

Running 5.3.0alpha3 now and converting our codebase to the new namespaces syntax. Works fine so far, the new name resolution rules are very usable and lead to cleaner code so far. :)

Now I ran into a problem. We have a class extending ReflectionProperty, and I got a complaint about the signature of our getValue() not matching that of the parent class. Ok, I added that stdclass type hint, fine. I thought.

Later on it turned out that I need to make that type hint \stdclass as our code is namespaced and I got an error because My\NS\stdclass could not be found. Now I got that signature mismatch warning again. Bummer. I decided to build a small test case, and now the fun starts.

According to the manual and the PHP source the signature is this:
 public function getValue(stdclass $object)

This is my test code:
 ---- snip ----
<?php
class PropertyReflection extends ReflectionProperty {
        public function getValue(stdclass $object) {}
}
?>
 ---- snip ----

and the result of running that is:
 ---- snip ----
Declaration of PropertyReflection::getValue() should be compatible with that of ReflectionProperty::getValue()
 ---- snip ----

I get that result even when using
 * no type hint
 * stdClass

The result stays the same when adding a namespace declaration and adjusting the typehint variations accordingly.

Can anybody shed some light on this? Or should I file a bug report right away?

Thanks,
Karsten

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to