mirror of
https://github.com/php/php-src.git
synced 2024-11-24 18:34:21 +08:00
Fix bug in reflectionClass relate to #64239
This commit is contained in:
parent
7dce0194c8
commit
39a173b79b
@ -1298,7 +1298,8 @@ static void reflection_method_factory(zend_class_entry *ce, zend_function *metho
|
||||
}
|
||||
MAKE_STD_ZVAL(name);
|
||||
MAKE_STD_ZVAL(classname);
|
||||
ZVAL_STRING(name, method->common.function_name, 1);
|
||||
ZVAL_STRING(name, (method->common.scope && method->common.scope->trait_aliases)?
|
||||
zend_resolve_method_name(ce, method) : method->common.function_name, 1);
|
||||
ZVAL_STRINGL(classname, method->common.scope->name, method->common.scope->name_length, 1);
|
||||
reflection_instantiate(reflection_method_ptr, object TSRMLS_CC);
|
||||
intern = (reflection_object *) zend_object_store_get_object(object TSRMLS_CC);
|
||||
|
44
ext/reflection/tests/bug64239.phpt
Normal file
44
ext/reflection/tests/bug64239.phpt
Normal file
@ -0,0 +1,44 @@
|
||||
--TEST--
|
||||
Bug #64239 (ReflectionClass::getMethods() changed behavior)
|
||||
--FILE--
|
||||
<?php
|
||||
class A {
|
||||
use T2 { t2method as Bmethod; }
|
||||
}
|
||||
trait T2 {
|
||||
public function t2method() {
|
||||
}
|
||||
}
|
||||
|
||||
class B extends A{
|
||||
}
|
||||
|
||||
$obj = new ReflectionClass("B");
|
||||
print_r($obj->getMethods());
|
||||
print_r(($method = $obj->getMethod("Bmethod")));
|
||||
var_dump($method->getName());
|
||||
var_dump($method->getShortName());
|
||||
?>
|
||||
--EXPECT--
|
||||
Array
|
||||
(
|
||||
[0] => ReflectionMethod Object
|
||||
(
|
||||
[name] => Bmethod
|
||||
[class] => A
|
||||
)
|
||||
|
||||
[1] => ReflectionMethod Object
|
||||
(
|
||||
[name] => t2method
|
||||
[class] => A
|
||||
)
|
||||
|
||||
)
|
||||
ReflectionMethod Object
|
||||
(
|
||||
[name] => Bmethod
|
||||
[class] => A
|
||||
)
|
||||
string(7) "Bmethod"
|
||||
string(7) "Bmethod"
|
Loading…
Reference in New Issue
Block a user