ID:               50810
 User updated by:  gaboto at gmail dot com
 Reported By:      gaboto at gmail dot com
 Status:           Open
 Bug Type:         Reflection related
 Operating System: Windows
 PHP Version:      5.3.1
 New Comment:

Another more complete example here:
<?php
 
class ExampleSuperClass
{
    private $foo;
    static protected $bar;
 
    private function foo()
    {
    }
 
    public function propertyFooExists()
    {
        return property_exists($this, 'foo');
    }
 
}
 
class ExampleSubClass extends ExampleSuperClass
{
    public function methodExists()
    {
        return method_exists($this, 'foo');
    }
 
    public function propertyBarExists()
    {
        return property_exists($this, 'bar');
    }
}
 
$example = new ExampleSubClass();
var_dump($example->methodExists());
var_dump($example->propertyFooExists());
var_dump($example->propertyBarExists());

?>

In php 5.2.1 you get:
bool(true)
bool(true)
bool(false)

php bool 5.3:
bool(true)
bool(false)
bool(true)

expected result: 
bool(true)
bool(true)
bool(true)


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

[2010-01-20 23:17:54] gaboto at gmail dot com

I'm sorry, the example was wrong, this is the right example:
<?php
class ExampleSuperclass
{
private $foo;
function propertyExists()
{
return property_exists($this, 'foo');
}
}

class ExampleSubclass extends ExampleSuperclass
{

}

$example = new ExampleSubclass();
var_dump($example->propertyExists());
?>

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

[2010-01-20 21:09:20] gaboto at gmail dot com

Description:
------------
property_exists does not work for private property defined in a
superclass.

Reproduce code:
---------------
<?php
class ExampleSuperclass
{
        private $foo;
} 

class ExampleSubclass extends ExampleSuperclass
{
        function methodExists()
        {
                return method_exists($this, 'foo');
        }
}

$example = new  ExampleSubclass();
var_dump($example->methodExists());

?>

Expected result:
----------------
it must print bool(true)

Actual result:
--------------
it prints bool(false)


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


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

Reply via email to