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