Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:129961 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 8027E1A00BC for ; Sat, 31 Jan 2026 04:15:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1769832918; bh=mmBD5/TimnjinBzZkKgXpZl5OJNDAkXRHvUGZ10B9/w=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=N9iISVkJEB6hf7MY6qFXmvHC08kdVEwTuwM0YT1XSVO9sXgalCda1f7OH/yzI9Vwd WRKVsAC2KVZEPYV7ekl6F8AaoNR+KPeAAoe5F5jDL03HPPSPuXhr51ifaW1wIOCbsA og5qVhzldVSALNeaLUvJB3by+X2P4jX+H7Z+yBKL2yghTZ9HdPwuCugjg16uGN5v8m 68B8BWCCN9+MGJzP24dpYTD/JH6ZZrNUIyJPevZ+jwCcY9iM4jjkze6PuDRn1sA5Qe ynRFEKQ9ilW9VFCwYlMB1swVQr/7kv2E4BYaFoCQQAKAD5pF55rk0JXfPrVFo/7JBx s0bM4dJkIL2Zw== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 651E21804F4 for ; Sat, 31 Jan 2026 04:15:17 +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.9 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_50, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS, FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,HTML_MESSAGE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: No X-Envelope-From: Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazolkn19011034.outbound.protection.outlook.com [52.103.39.34]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (secp384r1) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Sat, 31 Jan 2026 04:15:17 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AY76DAPDOgfW1hB1GK/v8mYEiHlwfRd9KzyzLj/Q/pCSaeMK9j2mFoEzQRiwJwFXEpBaqzuSrovWJtmIbL8e2WuE+C4oHZxj62XbPeF/1Jc5vyTzk83ApKj3E/SaCJPGHvX14nw03jhBRlMKJ+S3kDZrMmqWSteWZBvIkpqhvQ/hRYXlhXOn/+rSVE8xwnUddJeo9p2eeRsu37Fy+oGzVuUpeBGg3C7PFuDBLiae1Tfprqn1x1VqbQmX7piOjQ503q+a4PLnnkmof5sU0DumNsSiTuoNk1GAVHVTpR5j2DAGXLEmAAGeN7WAc3gpP9cq5eDLL1tGbLUIuka3rKhjGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=OZIGtN1N8ljdhlUz6TF3VH8dcbi0ogcUEUi/m5mLTW8=; b=EehS1IKe0IJooXImDoL07XZ9WHZaBB+Df5br8WKlPD5YSg6BaqMjvFM4DIKP00d8EEXNNzAE7MNgWAS5j/2dw9x9vytkqUZ1mI6/tW69gRkiMAfT+EeBX8290v32CGFdklHUlb7cFqyU2MqkFN7YWrRP0BkBhMe8H3Kg0VfeYrnLRt88g8CLsy4VIOsNsBfXLwfz2suf0TlKXWGZjsZXhEVMyykh0OBm5OlW4Oz2lTHZ9PbVPN238THFaTO23j7duWQh33jhMXfLoAMlNyHemtqdBMvJ/hNpqUfBVU9oDlPSJPh6917OklqT0uGYVwRe+vCr3Mavf9aiVygAFGYNjA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OZIGtN1N8ljdhlUz6TF3VH8dcbi0ogcUEUi/m5mLTW8=; b=Ftt1xD1E0E00FZ/jfH1F2aKxddD4Cjp5zrip7SW8Fj59xLSdIMcW6UA5hb1FV3zRdjbJBORebffmiBO4QImYsMxI94CyNCmHCRHoq29b/qFTlQsZaM4KdKsL/LDdqtZraB0y+Ammt2uIWg7vlGKLM3oIbS0FdcCL+p6w5Do6MBbwJRekcnoWWr4YxoxlK5j4coUDUDbXESbbmNvwJQ1usiBBcyw/CJowvsOyjHYgZXe29vJ56ML3OXJAGG94tXsSph0af8KiIo8Taouxo/IFczOSoarFGD5asMV9RUNbbYJGfqVlxpj9uiOdhxOGSDdl8hJGofLBavi1i6ps3fiTcg== Received: from AM8P250MB0170.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:321::21) by AM7PPF40ABF2DE4.EURP250.PROD.OUTLOOK.COM (2603:10a6:20f:fff1::710) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.13; Sat, 31 Jan 2026 04:15:09 +0000 Received: from AM8P250MB0170.EURP250.PROD.OUTLOOK.COM ([fe80::6d50:e32b:6064:8801]) by AM8P250MB0170.EURP250.PROD.OUTLOOK.COM ([fe80::6d50:e32b:6064:8801%5]) with mapi id 15.20.9542.010; Sat, 31 Jan 2026 04:15:09 +0000 Content-Type: multipart/alternative; boundary="------------WERFVbRR2B90IeAR5VdfFLdK" Message-ID: Date: Sat, 31 Jan 2026 05:15:07 +0100 User-Agent: Mozilla Thunderbird Subject: Re: [PHP-DEV] [RFC] Allow Reassignment of Promoted Readonly Properties in Constructor To: Nicolas Grekas , Claude Pache Cc: PHP Internals List References: Content-Language: en-US In-Reply-To: X-ClientProxiedBy: FR5P281CA0002.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f2::20) To AM8P250MB0170.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:321::21) X-Microsoft-Original-Message-ID: <02938ad2-6919-448a-9d0c-aec2b2239d80@hotmail.com> Precedence: list list-help: list-unsubscribe: list-post: List-Id: x-ms-reactions: disallow MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM8P250MB0170:EE_|AM7PPF40ABF2DE4:EE_ X-MS-Office365-Filtering-Correlation-Id: 1a961ce9-d456-43d9-92be-08de607f5226 X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnr9cOglUl1urTSFBsjx1OD0b5q0dv6jEVfimimPepvXyL8+5hsg0qoFX0gmoyedEdINrPggSqYGKO7QR2lr1nZUs1KJ7yuB6p4gpXO0dGQFFdBJWR5s/NlmN3zyVDp4YsDGtQK51RXjaTG+pQdkBTv9CFM26qrkHmig3yTqC5pp6HuPVlN8t2A4JJ73y1a1reRfE68eFeKRXUoU67gkkAiiCTxbss1ziX0y8gj01th7d+/d3GcLEFUrS7WxZ49AXFwFLfCUDQUiIBgC6Gucb9VqN8yTeKFEtmVnMmGMSxN8QLvmnPwK6IYjRdrs6oxQwvkMOgIuxhipsce87DDSmVLmHw/rnOd/bgOrb95btnRDfIyxaiQ6kVBZXmUYnjRNHZYt+cW1VH0wMdD7HXa+jlgLuYnqHB1ZudcI8E9dCTpSNSfeYWF53BEVg/EKp2330Tem7DuyE166piVGFo8+wXHTqFQG3cfg4TrI9b2kzneKDbsdGd6e5PqCE7TTCbkbdEkyAlrGomjGxwqknn2r+jvwCWO8nN6jY2Wf1UcVk8e92l6ggR5MRDvKXPktskEeTQuT5KKUJDRzj5UVyMgnFOdaqIt27LtMZx1m1GG3+3qVBPu9biCFrhJbGK0ljdXN5i125814B04JSgQFL6iNSfE52zglKo8+7NtUvpOLNxSHyzR6bkCGAA7vO3VRSw8V55HsjXSWDvAhy8wNNk93bYlmupTt/GrPjsj8DHmJG32cWi8RjoPTTEE+MEyKFy623sY= X-Microsoft-Antispam: BCL:0;ARA:14566002|19110799012|8060799015|5072599009|51005399006|461199028|23021999003|15080799012|12121999013|440099028|3412199025|40105399003|26104999006|19061999003; X-Microsoft-Antispam-Message-Info: =?utf-8?B?RW5ubi9mTlJGNkMvSXRYN3FEQjlUMW4xT2xESlZ5OU9ONzBWekpaZ1BRZ1Jz?= =?utf-8?B?ZHVjSFF3RTFSaUhkKzV2bExXQ0JudnBiL3RCVGlIS1l1M2kxVjVyQUkzcHF4?= =?utf-8?B?b2crWjNLN3MwY0RvVDZKcnNFaG9JY0xWT0RHQzUwSHlsTGR3TzdOTDRTWlFF?= =?utf-8?B?YVNsWmVlaHYvNVYvUDlSZjRNVTZSTWM3MTdUcmlVZkNwMzdCWHNFUXJFTXlu?= =?utf-8?B?RUMvemRqY1cxcVBpUktMVVVwS2o4eVY5RHI4alB6RmdqUVE1V3RrSFlycG5F?= =?utf-8?B?MTAzSUUwbDFmRlhhMHBnb050aDJ4dG9KWDZHbEVNYTVyMUZ6VFlpWGU4dmdo?= =?utf-8?B?dXpsNHB0QXpTbkF0M2lsYnZ4NTJ5WXJFRTBORVluMHhsNlZzdUxLU3N4QkpF?= =?utf-8?B?TExlMlBqYUVNTFFSemg3ZFVIemNjMFJ5eWlGV3lzekp5WUE2bUNDOGtnSVJq?= =?utf-8?B?SkVDaW43cHMyM1RWSXdmdkM3U2ZScTVpMXBXcC9TK28zOHJHUnJLRGFaeHVI?= =?utf-8?B?anR2N3lXSGFCSzFhT2lLY2R6N0JxdWRqbEh4eUdGRVk1eGdLYU1lK0I4N0ND?= =?utf-8?B?a0VjT0wwcUliNzJVa1RaVyt0T0RTdTlDMktUd0tJN2VSaThPWkp3NFZGdzZH?= =?utf-8?B?YWo3V0Jrb2ZTQnM2cjFubVhnZmVkSWQ2OW1idERjeFdkRGk5R3E2T2lRc1Iz?= =?utf-8?B?MURQaUhFT3U1dTdRVlZ2QkduWTRhM3dkRG5hWkhGWGIrUmdSemovOUNRVzJr?= =?utf-8?B?YUl5UGlEcGJieTh0WE4wL3BzWktBdHFONmtNUW1qNjNDYjZoZ2dJQmZPaXBL?= =?utf-8?B?YmhuRUJhMWxkWG1MMmhZQlNNQnB0Z0NXZW1YakduUnE5NldhODMxTFowdmt1?= =?utf-8?B?L1N2aExaRzRkR3haaDVhcFpnZTVDWVFhQThScGJnc0h3dTBTdHNxSDdhTEJs?= =?utf-8?B?cDNxZTJiLzlJbGxNVjNXTVduK2R3L3VwbHV1dmhqSDI3YzRyYjYvVHZ4V3dw?= =?utf-8?B?MjdQK25reFk5dXN6ZG9uZnl4UjBReDhpNkl3Q3lSTnloR2Y4QVYzbjdPVWxs?= =?utf-8?B?N3dnSE5CZTJqVFVwalVhZm4waXZLK083WmdwSTluMnRsNGw2OGFsUGRUQ2tz?= =?utf-8?B?NTVrTGx6OVZYMkdpVzJqNG5YNTR0UDJITFU3anlwclNtTE9lUnhzb0lGNUNh?= =?utf-8?B?QmQ0TXBLdFhFdngzcVppWkloRzAyM2FIb3htSzNwTmkweEdkMldNOUF1cFpt?= =?utf-8?B?UXMwZ2lCWHdUcGtQU2NxNlpUeFRsQXF4aFllZlhLVVY3NW5VZW83cWtmRkc0?= =?utf-8?B?Q1lxOENPTi9ja1dxeTNNTldObTdvWG4zVFc4ckdnVitkZmliWTZRRHRaYmRn?= =?utf-8?B?eEdWRWVWVTI4RkVnNld0NDZ6NFVZOXVyNStVampwNG1sQnhHc0tVWGR4M2RV?= =?utf-8?B?enZPLzYyRzI5Nys0Y1ZZYy9KeHozaU0vbW5YdjcxWVdjK0YxdXorMVQvaHFV?= =?utf-8?B?cFVEMnRCcUtReGplVW0zUFhWY1BzWHRJWjF4azN1RXpxN2VMczRtRm9rZTVQ?= =?utf-8?B?WGY3Um5sd01raTNFU0N5MTZzcmhJc0lRMU9Mc2xyRjJFYUZ1WFpkemlIckhF?= =?utf-8?B?aGk4REFRT0VpTW92bXFsNEJwU0kvL0g3b2xsVkFTaTRtanhvb3lxTmw5SXho?= =?utf-8?B?L3VpUEM4SkxYRGF3dVNQWTZNbDRDRzJTVFU2Q0xMSENkMEsxSTlLU0lnPT0=?= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?V0ZtWlhMbFczRG5IUnhYZTQ3Z2ZjNHpvb3RrZlBKVWw5TWRzWEdLS05GTE4y?= =?utf-8?B?aldTcEdaSFE4K214dmhVdDhwbS9VUmVBMEhsRUg0bCtrSFI3NzUzaVR3ME4y?= =?utf-8?B?Sk9NM3pNaVJ3U0dXU3JBVWQvdWFZVmJRbnJEUGdIcG9LdXUrT2w3eVhtVmZM?= =?utf-8?B?eHhDbW4yZW9lRDI4ck1FbDNIVTFyWUFQRllod0p6L01JTFpubmRmblhTQU9G?= =?utf-8?B?SkxRaDdyamkvMHlLOC9INWlyU0JqdEtPaGoxeGFEcjV4TWFxZ0tOZEdoWHZw?= =?utf-8?B?c3VFeEo3OW8rcStvbklrb2duZWhyVmFlUlpsdTFWMm40enlydGtyMTZnc2VY?= =?utf-8?B?N3o2NFZ2NmFuS0NBMkpmQlVjNjF2TTR3Q3lYVnhSS1o3dmJoVGx1eUJNRDdX?= =?utf-8?B?SWc2Qmw0MUtBbDJJRmp3OURSWFVueWo4NXdHVWdBRzk1cFVFOTVLbFRRc1BN?= =?utf-8?B?YkY3UFU4eWc4VXpVM2tIVzVySnRTRWh5ZXJWNVZMeGdqMExvbTk3SnJ1bFVU?= =?utf-8?B?c0RwUWYvSHFNWjRMakhCSkRVdGlOdmlENzJMUWh4TTVYZXg5ZmJDU09LQnIz?= =?utf-8?B?NHNGM2pLSnZvM3ZFdzJqWnFzZmVoRFgzenNZVUgxRXNtZ3ptTllOMHVPekZo?= =?utf-8?B?bjh1VCtGT0lYYVlFenhNL0lZS3JkaWh5UU4xL3pBMnYzelB2WDRsMWRESktB?= =?utf-8?B?TS92Mk1WWUw0SC9qbUJCQVdVWkVWQytFTkdEdGVrRVVINTZhZFRlMG5VR21I?= =?utf-8?B?ZW5UUzNKNm9oRENYTlV5MVRlRm9KOFVxV1hhNUV1cDM4bzNnMys4eldTWjRu?= =?utf-8?B?QlNxeURXbFBBb0FJRmVDemI0RXFjclB5dUhJRlFCc3NPckVwOHdsTXIwMkZy?= =?utf-8?B?UlliTDc2ai9PRXpqMytSTnp0Nmc5TlNLUkNZRGN5dW8wakMwUWhLOXRDUTRk?= =?utf-8?B?a1k5c2c3MmZqU0hyaEVROS9GMW5KS2JHSHBLRjU3T0hjVWlyRWEzWDJNaWI3?= =?utf-8?B?ZWtxYU0wemVKVmozb252anVobUZERm5haEVra1pGNWFyUTA2TXRrYXQrQjh3?= =?utf-8?B?cFpLVEk2MmZocEt4NW9wNXAzSVdSSDlHZFMxcVMraHB1RGpIRVRFUi9SOCtz?= =?utf-8?B?TDlRWHB3N0hMOGRrbWVya0FkektBZEdCOFU4NDNidlBiYk5lQUNIcHpxZjdr?= =?utf-8?B?YWdUTHJ4aTNQUGFvNXRMaW1VOHhIWFJVS1JpeXB5Q3ZDTUo5SzV3cjBoSlJt?= =?utf-8?B?cERZbllrYmduTGFydS9uemJBdlJwY2ZVOG5ZOU5QL05DcmZ0TW4wdTd5N1BJ?= =?utf-8?B?YWFkL2pOb01CZExKd2wrVTJ4UTBGdFZUVmxqbXRNc2o5RE1NblZBMlMzR2ZU?= =?utf-8?B?WURPaDRMQU9RR1FRV2JJWlVCd3dTdmZ0cW1pQ3gxc3o3QUNQNkdDRTFrRzVm?= =?utf-8?B?MUVFQzl6dlVzWmYrSnhjTi9KTVZyek5mc1Nrb09Ca0Y5cWhET1piaWliR0lF?= =?utf-8?B?VEdYM0t0ZzBoc0gxSVRnTld5VFdPdURoTlZVV2ZKM1Iwd0JOb3MvdERHZERu?= =?utf-8?B?eFI1a3kzQTlnY242Y1gxcG9kYURxLzNZRUEybGRkUm1RbUkwMkFZaFhyT0Vk?= =?utf-8?B?dm5KaENwekFicmVIcVd4aU5nQXlHRjQ0VngyVUhDOVNHN0x6VStEaS96V21y?= =?utf-8?B?eDZ6c081VXVjMTFDVC9tUTJwem1RaFhSdEcxUEI0MFBJcUw4MmNwOHNrK2Na?= =?utf-8?B?TW9RYVE0dSt4TjdWN0pkQUZLMENEeTN2bVNFZktHOU9Md2lvZDMzUUk5RWFy?= =?utf-8?B?UWQwaURRUm1leTdzRXYvWGZTMnhHNXorVmxPaGtaYUFtdG5oVDRsbkpFWXpR?= =?utf-8?B?U2hXTUlEYXVsM1pzcktDb21NUlVoeGNBeTFOT1FWeW80Z0huUjBKRmRGYUlL?= =?utf-8?Q?t4CpJxxx8ALFy9CrAshZ5Tnn5Gmd8/MA?= X-OriginatorOrg: sct-15-20-9412-4-msonline-outlook-eee9a.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: 1a961ce9-d456-43d9-92be-08de607f5226 X-MS-Exchange-CrossTenant-AuthSource: AM8P250MB0170.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jan 2026 04:15:09.2236 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PPF40ABF2DE4 From: bobwei9@hotmail.com (Bob Weinand) --------------WERFVbRR2B90IeAR5VdfFLdK Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hey Nicolas, On 29.1.2026 17:36:11, Nicolas Grekas wrote: > > Thank you for the thoughtful feedback. You raise valid points about > type precision and PHPDoc annotations being harder to express with CPP. > > I've added a "Design Considerations" section to the RFC acknowledging > these tradeoffs and clarifying when traditional declaration remains > preferable (type narrowing, detailed annotations, complex > initialization) vs. when CPP + reassignment fits well (simple > transformations like trim/lowercase, validation with fallback). > > The key point is: this RFC adds an option, it doesn't mandate any > style. If "final at declaration" clarity matters for a specific > property, traditional declaration remains available. I do generally sympathize with Claudes viewpoint here. While it's true that the RFC only adds a way how to write code, it also removes the currently valid assumption, that, whenever a readonly property is declared in a constructor arg, the arg will be exactly identical to the passed value. I will likely vote abstain on this RFC. I'm on the fence between "we should have this" (I can see that not repeating the type and variable name has some benefits) and "this muddies the readonly semantics". Bob --------------WERFVbRR2B90IeAR5VdfFLdK Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit

Hey Nicolas,

On 29.1.2026 17:36:11, Nicolas Grekas wrote:

Thank you for the thoughtful feedback. You raise valid points about type precision and PHPDoc annotations being harder to express with CPP.

I've added a "Design Considerations" section to the RFC acknowledging these tradeoffs and clarifying when traditional declaration remains preferable (type narrowing, detailed annotations, complex initialization) vs. when CPP + reassignment fits well (simple transformations like trim/lowercase, validation with fallback).

The key point is: this RFC adds an option, it doesn't mandate any style. If "final at declaration" clarity matters for a specific property, traditional declaration remains available.


I do generally sympathize with Claudes viewpoint here.

While it's true that the RFC only adds a way how to write code, it also removes the currently valid assumption, that, whenever a readonly property is declared in a constructor arg, the arg will be exactly identical to the passed value.


I will likely vote abstain on this RFC. I'm on the fence between "we should have this" (I can see that not repeating the type and variable name has some benefits) and "this muddies the readonly semantics".


Bob

--------------WERFVbRR2B90IeAR5VdfFLdK--