Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:130164 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by lists.php.net (Postfix) with ESMTPS id 0068B1A00BC for ; Tue, 24 Feb 2026 22:30:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1771972209; bh=3z53kQQvvSMfYNKO7vRJ7mwCsIXoYGCHK8SIJXR+uwA=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=kOvsXJlLyVV/zhMpOz+29LVu9BHo1oxoV0dwZchhx/WD8Kd8kbt7CroPm4GWyiKQ6 DUz1jaitWT3EALwC+6ibyw1SbFNyRi8LI+pJSMC4PCLPvGYlBcjq7a7df0v/J2+Ugx MpEHLla/HZ15BkVb8daJkeYz40VkvaWV1LVb7A4RCs32NPKNeynSDzOqRfYKUK6cmb qv6WmqK1Tif8pfsLHbShXtp6vOTIMzYkoAbx+1o2S6b1Sfi62giNtGwEYXrXxmQP+c wBNzUSvWzBQggvLOxxFnsMXJkkEN2RuD709ASPvyC/WIdacGsAEE/kEgvMOSAV808T 7uIWA/jXzZCrA== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id A34BB18033A for ; Tue, 24 Feb 2026 22:30:08 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_40, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS, FORGED_GMAIL_RCVD,FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: No X-Envelope-From: Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Tue, 24 Feb 2026 22:30:08 +0000 (UTC) Received: by mail-qv1-f42.google.com with SMTP id 6a1803df08f44-899b676b5d2so2913766d6.1 for ; Tue, 24 Feb 2026 14:30:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1771972203; cv=none; d=google.com; s=arc-20240605; b=ZmHVZsIK5ibYZ/BdyZZOQb3UbGNbPJMIvTvrGfVjivL1oafPiLokTW8V/Q6CvC/Fih LUj+HA7WgCkAp+VCDzu2eUUk2gkt2/ON2LY+rNZcdp/9Zz9p3+MZ/5aLBOkxia4XQKLM ZsacnlS6dbwJtMwjv2OlIsO7NvtILkJMm6GYSSROfhB9wEpeDQ8U82SZ9/4Ay5B/bsGy G/ghiuSAuMA8Gpjki+jHmgbBaCyI7uJJzwe3exvmEFNTVS0WeQtMSe+zrNwItE7f9A9n bacKxvdO/MZUyVq0rrWKj3oh9QiwOXH7xjhKhpTPuyfeOeSVsMdVg143otNENVnzS7AH hmGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=cgsKIZKFCE0CvbCJ/OR0m2Fkbgx7/C/EbOgX6dkpwHs=; fh=Ofn+XpSLefQyxrNYeqFK5V6BgIEzMTvoqvpJ6/SQfuk=; b=EnXzSzLzzoPc9YibqXZqHVQhQSw99O3KhxB650vHd7eEZykBn69oJotuHRmefncE1v G9BruaUdfca6O//A5Ffpi+6s6+XfHHdxLLtM0DGtxjxGiDDL68DBI1W8qNedMWqO1bzq yNPA8uizzTe2DOeNnmsm8u60vUI7E3aXBEoPUsR6TCiia937cfP5J8MivWxgLrq/Opfd MHPiHjrE6/umiVk2icSTlivtraDHTxvgeDt99OHqZFOdvEezMcwuoiYUda4AfJyJ+bVJ DBfvekgjf5JMfgICVuVDfyZdqUnTV604CC7neJ3hZdCndwIGHPbJ6r7iw5rYWKlYnpPN SP/A==; darn=lists.php.net ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771972203; x=1772577003; darn=lists.php.net; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=cgsKIZKFCE0CvbCJ/OR0m2Fkbgx7/C/EbOgX6dkpwHs=; b=YY4DY1mP4AJG/CB1EGNp6UFxoJEsUW+nE3fnbesJCpUyE+ZiTYhV/Jrf+oZf+aeKag 8tqAGqY4TkMNsG5V4VJh14fvzgLx80s62Y/4e8C5OswAGvBJzam4LuYfx4ZBu9RA7HQW ZAMbEdCU3r791VX6ljbyRiP5mm3t8tDJxlP/2fJtx8Y+51U7NnUMBZagWim+Gj8/lWKN hEFsd6Pyg5Hbbq4rbVQDDnidHjrybQdQ437nY6D3ih6BDRs9nh88/5v6i66ZSG4osHnQ CYjuGPp4kHuvIEylb68r7PODpTdtvVcZZgmzxbd61UDijnY7MC4E+/sApIVA74hq5JRo PsoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771972203; x=1772577003; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=cgsKIZKFCE0CvbCJ/OR0m2Fkbgx7/C/EbOgX6dkpwHs=; b=aWtfyQ2qgpNO+HEqb+g88lwdeHU5zt09ZXD87t0QGFxSZhVmHWDmpQRHaCKjYsNgJJ 22r/EdEqM7Drmr0bQbqK7TxyTpec6dyc1rkcviAuh0BNkUULb+X0jfV+ZkTLOWPuf0H7 rIeoAMIkBIs1snrfVAjCcBKNzZ/Xi/tYxbGcYVls5tMeGbp290+QmaVTrGF6nvBLRbP+ YiPZKcWrgYO322KCM2XXdzksf4cMvqbrRKq8rVhLGM84ToXOAgeJtIS6VO+9BQXjNGpg 2vGxYqh/n15jpw+on5AqsMxsxu0cEmOdZA5cz00J21xz6cmcEqDF0o0IDERBNY9WLZSa sIZg== X-Gm-Message-State: AOJu0Yx0cms4eA1HeuQsgOd5g8fJuSIcGp8YaLznZcA41lDrOOSb1XnH vaxr+3ASc2OQiMnADVF0H9y1mi2rYQzfTeQoS/dB0ZWW+6MTuz9Xk2rRGbfE2RsGvuciiH0j3w8 3Jbsgb45PoE7HUEbjiYRP+EBbIm6nfwEM6cqgDJA= X-Gm-Gg: ATEYQzxpRW346LQOr6lyi6HCihatuP14ng2AKrYwpg95E3J7dg0zKRa8F8u3cKCRkEh kbUR41Nraa9y6401n4b+E6w10yC+QEUWY4CvB6Kr3xDjHGYoO6bHX2cFltWmzkOzhaGTpRrhqGn 4/YB3leyaBUexWqH4AabTelExymZS/jDekjzKXBSE3Dz4XYO7vrBhVAc/QMCtlygqN92NLPJfND 3qES3onKRAnWPhR0cBKARmwxj75gHkr8akGHk8HK17960nT7PzIAWrLgAc97b3evfHRZ69unn77 7k7Dx/s+/9pGkvibyvuhyLuxdedB/HPy8hj2ocu1sr4LKv2iBKBpW25cbpnNyHVNWrlpcKDeT2F dYyJzQ3E0XB3dYK2YdQZgICQe+Q== X-Received: by 2002:ad4:5e8c:0:b0:87f:b58f:154f with SMTP id 6a1803df08f44-899b8c375e4mr1483106d6.50.1771972202609; Tue, 24 Feb 2026 14:30:02 -0800 (PST) Precedence: list list-help: list-unsubscribe: list-post: List-Id: x-ms-reactions: disallow MIME-Version: 1.0 References: <4b74f9a1-96d2-4104-abdd-fe56c5e7016c@app.fastmail.com> <585bfc82-a522-43ec-be42-b8945952fe8b@app.fastmail.com> <3cd0d869-5a5b-467c-8eb4-3f8647ba7aa7@bastelstu.be> <6def7a03-eba4-4289-ac4f-0881c5d4c092@bastelstu.be> In-Reply-To: Date: Tue, 24 Feb 2026 23:29:51 +0100 X-Gm-Features: AaiRm51h4XRgrIQdYYzxeQpaoHcXzF-bRcgoS83zK_EDCOcijIKajbamyKeTa_A Message-ID: Subject: Re: [PHP-DEV] [RFC] Allow Reassignment of Promoted Readonly Properties in Constructor To: Larry Garfield Cc: php internals Content-Type: multipart/alternative; boundary="000000000000b03f5f064b996da6" From: nicolas.grekas+php@gmail.com (Nicolas Grekas) --000000000000b03f5f064b996da6 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Le mar. 24 f=C3=A9vr. 2026 =C3=A0 20:57, Larry Garfield a =C3=A9crit : > On Tue, Feb 24, 2026, at 1:34 PM, Nicolas Grekas wrote: > > >> Otherwise, I'm happy with where this ended up. Thanks! > >> > > > > Thanks for having a look! > > Here is the update: > > > https://wiki.php.net/rfc/promoted_readonly_constructor_reassign?do=3Ddiff= &rev2%5B0%5D=3D1771797005&rev2%5B1%5D=3D1771961558&difftype=3Dsidebyside > > > > Cheers, > > Nicolas > > > Property hooks cannot be combined with CPP, so properties must be > declared separately > > This is untrue. The following code is legal: > > class Point { > public function __construct( > public float $x =3D 0.0 { set =3D> abs($value); }, > public float $y =3D 0.0 { set =3D> abs($value); }, > ) {} > } > > The point about readonly is valid, and worth keeping, as is the "affects > all writes" question, but the code above is possible. > > My bad, I should get used to them more :) https://wiki.php.net/rfc/promoted_readonly_constructor_reassign?do=3Ddiff&r= ev2%5B0%5D=3D1771961558&rev2%5B1%5D=3D1771972141&difftype=3Dsidebyside --000000000000b03f5f064b996da6 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


Le=C2=A0mar. 24= f=C3=A9vr. 2026 =C3=A0=C2=A020:57, Larry Garfield <larry@garfieldtech.com> a =C3=A9crit=C2=A0:
On Tue, Feb 24, 20= 26, at 1:34 PM, Nicolas Grekas wrote:

>> Otherwise, I'm happy with where this ended up.=C2=A0 Thanks! >>
>
> Thanks for having a look!
> Here is the update:
> https://wiki.= php.net/rfc/promoted_readonly_constructor_reassign?do=3Ddiff&rev2%5B0%5= D=3D1771797005&rev2%5B1%5D=3D1771961558&difftype=3Dsidebyside >
> Cheers,
> Nicolas

> Property hooks cannot be combined with CPP, so properties must be decl= ared separately

This is untrue.=C2=A0 The following code is legal:

class Point {
=C2=A0 =C2=A0 public function __construct(
=C2=A0 =C2=A0 =C2=A0 =C2=A0 public float $x =3D 0.0 { set =3D> abs($valu= e); },
=C2=A0 =C2=A0 =C2=A0 =C2=A0 public float $y =3D 0.0 { set =3D> abs($valu= e); },
=C2=A0 =C2=A0 ) {}
}

The point about readonly is valid, and worth keeping, as is the "affec= ts all writes" question, but the code above is possible.


My bad, I should get used to them more= :)


=
=C2=A0
--000000000000b03f5f064b996da6--