ID:               47254
 User updated by:  ivan1986 at list dot ru
 Reported By:      ivan1986 at list dot ru
 Status:           Assigned
 Bug Type:         Reflection related
 Operating System: *
 PHP Version:      5.*, 6CVS (2009-04-25)
 Assigned To:      felipe
 New Comment:

Hello!
As i now C and how i understand source fix may by simpled:

-       ZVAL_STRINGL(classname, ce->name, ce->name_length, 1);
+       ZVAL_STRINGL(classname, method->common.scope->name,
method->common.scope->name_length, 1);

-       ZVAL_STRINGL(classname, ce->name, ce->name_length, 1);
+       ZVAL_STRINGL(classname, prop->ce->name, prop->ce->name_length, 1);


Previous Comments:
------------------------------------------------------------------------

[2009-04-27 16:48:11] j...@php.net

Of course it's a bug, just commit your fix..

------------------------------------------------------------------------

[2009-01-31 19:44:17] fel...@php.net

Hi Marcus, is this actually the behavior expected?
As we have the 'class' array key in the return, I believe that is
really a bug.

Anyway here is a simple fix:
http://felipe.ath.cx/diff/bug47254.diff

------------------------------------------------------------------------

[2009-01-30 23:15:48] ivan1986 at list dot ru

Description:
------------
I test this in two version:

i...@ivan1986:~% /usr/bin/php -v
PHP 5.2.6-3 with Suhosin-Patch 0.9.6.2 (cli) (built: Jan 25 2009
00:51:23)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
    with XCache v1.2.2, Copyright (c) 2005-2007, by mOo

i...@ivan1986:~% php -v
PHP 6.0.0-dev (cli) (built: Nov  8 2008 02:31:17)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v3.0.0-dev, Copyright (c) 1998-2008 Zend Technologies

in CVS error now.

Reproduce code:
---------------
<?php

class A
{
        protected function a() {}
        
}

class B extends A
{
        public function b() {}
}

$B = new B();
$R = new ReflectionObject($B);
$m = $R->getMethods();
print_r($m);

?>

Expected result:
----------------
Array
(
    [0] => ReflectionMethod Object
        (
            [name] => b
            [class] => B
        )

    [1] => ReflectionMethod Object
        (
            [name] => a
            [class] => A
        )

)


Actual result:
--------------
Array
(
    [0] => ReflectionMethod Object
        (
            [name] => b
            [class] => B
        )

    [1] => ReflectionMethod Object
        (
            [name] => a
            [class] => B
        )

)



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=47254&edit=1

Reply via email to