- Fixed bug #53366 (Reflection doesnt get dynamic property value from
getProperty()). (Felipe)
- Fixed bug #53362 (Segmentation fault when extending SplFixedArray). (Felipe)
+- Fixed bug #52854 (ReflectionClass::newInstanceArgs does not work for classes
+ without constructors). (Johannes)
- Fixed bug #50987 (unaligned memory access in phar.c).
(geissert at debian dot org, Ilia)
- Fixed bug #47168 (printf of floating point variable prints maximum of 40
if (params) {
efree(params);
}
- } else if (!ZEND_NUM_ARGS()) {
+ } else if (!ZEND_NUM_ARGS() || !argc) {
object_init_ex(return_value, ce);
} else {
zend_throw_exception_ex(reflection_exception_ptr, 0 TSRMLS_CC, "Class %s does not have a constructor, so you cannot pass any constructor arguments", ce->name);
--- /dev/null
+--TEST--
+Bug #52854: ReflectionClass::newInstanceArgs does not work for classes without constructors
+--FILE--
+<?php
+class Test {
+}
+$c = new ReflectionClass('Test');
+var_dump(new Test);
+var_dump(new Test());
+var_dump($c->newInstance());
+var_dump($c->newInstanceArgs(array()));
+
+try {
+ var_dump($c->newInstanceArgs(array(1)));
+} catch(ReflectionException $e) {
+ echo $e->getMessage()."\n";
+}
+?>
+--EXPECTF--
+object(Test)#2 (0) {
+}
+object(Test)#2 (0) {
+}
+object(Test)#2 (0) {
+}
+object(Test)#2 (0) {
+}
+Class Test does not have a constructor, so you cannot pass any constructor arguments