diff --git a/src/Symfony/Component/Serializer/Normalizer/AbstractNormalizer.php b/src/Symfony/Component/Serializer/Normalizer/AbstractNormalizer.php index d5cdecab3eee4..542e5b9e11502 100644 --- a/src/Symfony/Component/Serializer/Normalizer/AbstractNormalizer.php +++ b/src/Symfony/Component/Serializer/Normalizer/AbstractNormalizer.php @@ -378,7 +378,7 @@ protected function instantiateObject(array &$data, $class, array &$context, \Ref // Don't run set for a parameter passed to the constructor $params[] = $parameterData; unset($data[$key]); - } elseif (isset($context[static::DEFAULT_CONSTRUCTOR_ARGUMENTS][$class][$key])) { + } elseif (array_key_exists($key, $context[static::DEFAULT_CONSTRUCTOR_ARGUMENTS][$class] ?? array())) { $params[] = $context[static::DEFAULT_CONSTRUCTOR_ARGUMENTS][$class][$key]; } elseif ($constructorParameter->isDefaultValueAvailable()) { $params[] = $constructorParameter->getDefaultValue(); diff --git a/src/Symfony/Component/Serializer/Tests/Normalizer/ObjectNormalizerTest.php b/src/Symfony/Component/Serializer/Tests/Normalizer/ObjectNormalizerTest.php index 860874a60eb21..35d1705d72799 100644 --- a/src/Symfony/Component/Serializer/Tests/Normalizer/ObjectNormalizerTest.php +++ b/src/Symfony/Component/Serializer/Tests/Normalizer/ObjectNormalizerTest.php @@ -245,11 +245,11 @@ public function testFillWithEmptyDataWhenMissingData() $result = $normalizer->denormalize($data, DummyValueObject::class, 'json', array( 'default_constructor_arguments' => array( - DummyValueObject::class => array('foo' => '', 'bar' => ''), + DummyValueObject::class => array('foo' => '', 'bar' => '', 'baz' => null), ), )); - $this->assertEquals(new DummyValueObject(10, ''), $result); + $this->assertEquals(new DummyValueObject(10, '', null), $result); } public function testGroupsNormalize() @@ -1117,11 +1117,13 @@ class DummyValueObject { private $foo; private $bar; + private $baz; - public function __construct($foo, $bar) + public function __construct($foo, $bar, $baz) { $this->foo = $foo; $this->bar = $bar; + $this->baz = $baz; } }