getClass() throws exception for type hint self
| Bug #39884 | ReflectionParameter::getClass() throws exception for type hint self | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Submitted: | 2006-12-19 13:18 UTC | Modified: | 2006-12-22 15:39 UTC |
|
||||||||||
| From: | bugs at php dot frankkleine dot de | Assigned: | ||||||||||||
| Status: | Closed | Package: | Unknown/Other Function | |||||||||||
| PHP Version: | 5.2.0 | OS: | ||||||||||||
| Private report: | No | CVE-ID: | None | |||||||||||
[2006-12-19 13:18 UTC] bugs at php dot frankkleine dot de
Description:
------------
The ReflectionParameter::getClass() method does not work properly if the reflected parameter uses "self" as type hint. Instead, a ReflectionException is thrown saying that the class "self" does not exist. Tested with 5.2 and 6.0.0-dev from Nov 22.
Reproduce code:
---------------
<?php
class stubParamTest
{
function paramTest(self $param)
{
// nothing to do
}
}
$test1 = new stubParamTest();
$test2 = new stubParamTest();
$test1->paramTest($test2);
$refParam = new ReflectionParameter(array('stubParamTest', 'paramTest'), 'param');
var_dump($refParam->getClass());
?>
Expected result:
----------------
object(ReflectionClass)[4]
public 'name' => 'stubParamTest' (length=13)
Actual result:
--------------
Fatal error: Uncaught exception 'ReflectionException' with message 'Class self does not exist' in C:\apachefriends\xampp1.5.3a\xampp\htdocs\tests\type_hint_self.php:13 Stack trace: #0 C:\apachefriends\xampp1.5.3a\xampp\htdocs\tests\type_hint_self.php(13): ReflectionParameter->getClass() #1 {main} thrown in C:\apachefriends\xampp1.5.3a\xampp\htdocs\tests\type_hint_self.php on line 13
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2006-12-19 14:40 UTC] thekid@php.net
[2006-12-19 14:44 UTC] thekid@php.net
[2006-12-22 15:39 UTC] iliaa@php.net