ID: 32296
Updated by: [EMAIL PROTECTED]
Reported By: php dot bug at hebbron dot com
-Status: Assigned
+Status: Closed
Bug Type: Class/Object related
Operating System: *
PHP Version: 5.*
Assigned To: andi
New Comment:
Fixed in CVS HEAD and PHP_5_0.
Now get_class_methods() shows accessible private and protected methods
if it is called from class scope.
Previous Comments:
------------------------------------------------------------------------
[2005-03-14 04:46:49] php dot bug at hebbron dot com
Sorry - the expected output is from php 5.0.2 and the actual output is
from 5.0.3 in case that wasn't clear.
------------------------------------------------------------------------
[2005-03-14 04:45:09] php dot bug at hebbron dot com
Description:
------------
Using the code below, the output from get_class_methods is different
between versions 5.0.2 and 5.0.3. This missing data is breaking some of
our code. Is this change intended - I can't see it mentioend in the
docs.
Reproduce code:
---------------
abstract class space{
function __construct(){}
abstract protected function unfold();
}
abstract class shape extends space{
protected final function unfold(){}
}
abstract class quad extends shape{
function buggy(){
$c = get_class($this);
$a = get_class_methods(get_class($this));
$b = get_class_methods($this);
print($c."\n".'a:');
print_r($a);
print('b:');
print_r($b);
}
}
class square extends quad{}
$a = new square();
$a->buggy();
Expected result:
----------------
square
a:Array
(
[0] => buggy
[1] => unfold
[2] => __construct
)
b:Array
(
[0] => buggy
[1] => unfold
[2] => __construct
)
Actual result:
--------------
square
a:Array
(
[0] => buggy
[1] => __construct
)
b:Array
(
[0] => buggy
[1] => __construct
)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=32296&edit=1