Files
php-src/ext/reflection/tests/ReflectionClass_getProperty_anonymous_class.phpt
Ilia Alshanetsky 3a9d86a81b Parse qualified reflection names with a length-aware search
ReflectionMethod::__construct(), ReflectionMethod::createFromMethodName()
and ReflectionClass::getProperty() split "Class::member" with strstr(),
which stops at the first NUL. Anonymous class names embed one, so a name
obtained from ReflectionClass::getName() was rejected. Use zend_memnstr()
over the whole string instead.

Closes GH-22970
2026-07-31 11:56:18 -04:00

22 lines
384 B
PHP

--TEST--
ReflectionClass::getProperty() with a qualified anonymous class name
--FILE--
<?php
$obj = new class {
public $p = 42;
};
$reflector = new ReflectionClass($obj);
$name = $reflector->getName();
var_dump(str_contains($name, "\0"));
$p = $reflector->getProperty($name . '::p');
var_dump($p->getName(), $p->getValue($obj));
?>
--EXPECT--
bool(true)
string(1) "p"
int(42)