php-src/Zend/tests/bug50810.phpt
Nikita Popov ca652aafa8 Fixed bug #78632
I'm going for a very conservative fix here, where the previous
logic is restored for the case where an object is passed to
method_exists(). We might want to check against EG(scope) instead,
but this seems like a safer choice.

This means that behavior in PHP 7.4 changes only for
method_exists('C', 'privateMethodNotOnC'), which should be sensible.
2019-10-04 12:41:49 +02:00

47 lines
804 B
PHP

--TEST--
Bug #50810 (property_exists does not work for private)
--FILE--
<?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(method_exists($example, 'propertyFooExists'));
var_dump($example->propertyFooExists());
var_dump($example->propertyBarExists());
?>
--EXPECT--
bool(true)
bool(true)
bool(true)
bool(true)