1
0
mirror of https://github.com/php/php-src.git synced 2026-03-27 01:32:22 +01:00

Fixed bug #43483 (get_class_methods() does not list all visible methods)

This commit is contained in:
Dmitry Stogov
2008-02-21 15:14:13 +00:00
parent ffa42113ff
commit 7eb1befffe
3 changed files with 27 additions and 1 deletions

2
NEWS
View File

@@ -81,6 +81,8 @@ PHP NEWS
is not available). (Ilia)
- Fixed bug #43491 (Under certain conditions, file_exists() never returns).
(Dmitry)
- Fixed bug #43483 (get_class_methods() does not list all visible methods).
(Dmitry)
- Fixed bug #43482 (array_pad() does not warn on very small pad numbers).
(Ilia)
- Fixed bug #43457 (Prepared statement with incorrect parms doesn't throw

24
Zend/tests/bug43483.phpt Normal file
View File

@@ -0,0 +1,24 @@
--TEST--
Bug #43483 (get_class_methods() does not list all visible methods)
--FILE--
<?php
class C {
public static function test() {
D::prot();
print_r(get_class_methods("D"));
}
}
class D extends C {
protected static function prot() {
echo "Successfully called D::prot().\n";
}
}
D::test();
?>
--EXPECT--
Successfully called D::prot().
Array
(
[0] => prot
[1] => test
)

View File

@@ -867,7 +867,7 @@ ZEND_FUNCTION(get_class_methods)
if ((mptr->common.fn_flags & ZEND_ACC_PUBLIC)
|| (EG(scope) &&
(((mptr->common.fn_flags & ZEND_ACC_PROTECTED) &&
instanceof_function(EG(scope), mptr->common.scope TSRMLS_CC))
zend_check_protected(mptr->common.scope, EG(scope)))
|| ((mptr->common.fn_flags & ZEND_ACC_PRIVATE) &&
EG(scope) == mptr->common.scope)))) {
char *key;