diff --git a/ext/reflection/tests/bug40794.phpt b/ext/reflection/tests/bug40794.phpt new file mode 100644 index 0000000000000..d4211c5cd41f7 --- /dev/null +++ b/ext/reflection/tests/bug40794.phpt @@ -0,0 +1,48 @@ +--TEST-- +Bug #40794 (ReflectionObject::getValues() may crash when used with dynamic properties) +--SKIPIF-- + +--FILE-- +prop1 = '1'; +$obj->prop2 = '2'; +$obj->prop3 = '3'; + +$reflect = new ReflectionObject($obj); + +$array = array(); +foreach($reflect->getProperties() as $prop) +{ + $array[$prop->getName()] = $prop->getValue($obj); +} + +var_dump($array); + +echo "Done\n"; +?> +--EXPECTF-- +array(3) { + ["prop1"]=> + string(1) "1" + ["prop2"]=> + string(1) "2" + ["prop3"]=> + string(1) "3" +} +Done +--UEXPECTF-- +array(3) { + [u"prop1"]=> + unicode(1) "1" + [u"prop2"]=> + unicode(1) "2" + [u"prop3"]=> + unicode(1) "3" +} +Done