php-src/Zend/tests/bug77291.phpt
Christoph M. Becker 0061db5503 Fix #77291: magic methods inherited from a trait may be ignored
When adding methods from a trait, we must not assume that a method name
with the same length as the name of the using class is either a PHP 4
style constructor, or not a magic method at all – it may well be
another magic method.

We mostly preserve the spirit of the optimization which caused this
regression, and avoid string comparisons for all method names which can
never be magic methods.
2018-12-16 13:30:11 +01:00

43 lines
687 B
PHP

--TEST--
Bug #77291 (magic methods inherited from a trait may be ignored)
--FILE--
<?php
trait AccessibleProperties
{
public function __isset($property)
{
return property_exists($this, $property);
}
public function __get($property)
{
if (property_exists($this, $property)) {
return $this->$property;
}
}
}
class Foo4567 {
use AccessibleProperties;
protected $a = 'Some value';
}
class Foo45 {
use AccessibleProperties;
protected $a = 'Some value';
}
$foo = new Foo4567;
var_dump(isset($foo->a));
$foo = new Foo45;
var_dump($foo->a);
?>
===DONE===
--EXPECT--
bool(true)
string(10) "Some value"
===DONE===