On Mon, Feb 2, 2026, at 22:14, Nicolas Grekas wrote:
> Hi Marco,
> 
> Le lun. 2 févr. 2026 à 11:54, Marco Pivetta <[email protected]> a écrit :
>> Hey Nicolas,
>> 
>> 
>> On Thu, 22 Jan 2026 at 16:34, Nicolas Grekas <[email protected] 
>> <mailto:nicolas.grekas%[email protected]>> wrote:
>>> Dear all,
>>> 
>>> Here is a new RFC for you to consider:
>>> https://wiki.php.net/rfc/promoted_readonly_constructor_reassign
>> 
>> 
>> What happens if one calls `$obj->__construct(1, 2, 3)` (on an already 
>> instantiated `$obj`) in the context of this patch?
> 
> Thanks for asking, I didn't think about this. This made me also think about 
> ReflectionClass::newInstanceWithoutConstructor().
> I clarified this in the RFC, see "Direct __construct() Calls Cannot Bypass 
> Readonly" and "Reflection: Objects Created Without Constructor".
> Patch and PR updated also if anyone wants to run some code where this RFC can 
> be played with.
> 
> Cheers,
> Nicolas

Hi Nicolas,

Under "Child Classes Can Reassign Parent Properties": this feels like a major 
footgun. Calling parent::__construct() won't allow a reset (per the rules of 
calling a constructor directly); which would completely break inheritance... 
but then in the examples it says that calling a constructor directly can reset 
it -- but you can't?

This feels really inconsistent to me.

— Rob

Reply via email to