From 0d74b3f4371b1f8f0f24ff77f9035be192c08b50 Mon Sep 17 00:00:00 2001
From: qodelicious <162776175+qodelicious@users.noreply.github.com>
Date: Mon, 19 Oct 2026 00:13:21 +0000
Subject: [PATCH 1/2] ReflectionProperty::getDefaultValue(): note about
promoted properties
Fixes #3386
---
.../reflection/reflectionproperty/getdefaultvalue.xml | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/reference/reflection/reflectionproperty/getdefaultvalue.xml b/reference/reflection/reflectionproperty/getdefaultvalue.xml
index 887944dc073b..6f79dc954983 100644
--- a/reference/reflection/reflectionproperty/getdefaultvalue.xml
+++ b/reference/reflection/reflectionproperty/getdefaultvalue.xml
@@ -30,6 +30,14 @@
between a &null; default value and an uninitialized typed property.
Use ReflectionProperty::hasDefaultValue to detect the difference.
+
+
+ For promoted properties,
+ the default value is only applied to the constructor parameter, not to the property itself,
+ so this method returns &null;. Use ReflectionParameter::getDefaultValue
+ on the matching constructor parameter to get it.
+
+
From a835e8d09e13f16703130fb44cd319d622ecb319 Mon Sep 17 00:00:00 2001
From: Louis-Arnaud
Date: Mon, 19 Oct 2026 09:53:44 +0200
Subject: [PATCH 2/2] Apply suggestion from @lacatoire
---
reference/reflection/reflectionproperty/getdefaultvalue.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/reference/reflection/reflectionproperty/getdefaultvalue.xml b/reference/reflection/reflectionproperty/getdefaultvalue.xml
index 6f79dc954983..f144016244fc 100644
--- a/reference/reflection/reflectionproperty/getdefaultvalue.xml
+++ b/reference/reflection/reflectionproperty/getdefaultvalue.xml
@@ -34,7 +34,8 @@
For promoted properties,
the default value is only applied to the constructor parameter, not to the property itself,
- so this method returns &null;. Use ReflectionParameter::getDefaultValue
+ so this method returns &null; and ReflectionProperty::hasDefaultValue
+ returns &false;. Use ReflectionParameter::getDefaultValue
on the matching constructor parameter to get it.