Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:130142 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 949A31A00BC for ; Mon, 23 Feb 2026 21:29:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1771882178; bh=DOdLeHOcVzmP8lDtna7JAkZWb4KoQCfNE6wCFycp4zQ=; h=From:Subject:Date:To:From; b=KpsorbcYwzwc+W0q20gWboEN3lmcdHvyaIigXbQNENvvOj5QkBbAXMvVp4+WMmjFf I6qQGbjXPQSHXJCAUwGma0mb4ji2lVnxT2jNeJnLX+BFwxTRhZUHfRXdcql67vu4Rd qI4oFqmZEZGlLcbmSWqBMksWDWY+XbmeSzUkAeqydGbFAlzWUiVa6tNLFNXbWhYGkN Sk/QrrKUmAHqokH6CtKcQ7IujHk7Kb7NrK3LsqLko82fO5NNvcOIe/ktaUdoFsRS0P zEVETSntTeXUciQctTjkhCfMTBeAYjBrZWSMeahR5kAJDp7w+qRZT28968IsDjVW9+ MmHC7D6yMoHyg== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 3E594180549 for ; Mon, 23 Feb 2026 21:29:37 +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.6 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS,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-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (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 ; Mon, 23 Feb 2026 21:29:36 +0000 (UTC) Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-483a2338616so30555435e9.0 for ; Mon, 23 Feb 2026 13:29:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wcflabs.de; s=google; t=1771882170; x=1772486970; darn=lists.php.net; h=to:date:message-id:subject:mime-version:content-transfer-encoding :from:from:to:cc:subject:date:message-id:reply-to; bh=DOdLeHOcVzmP8lDtna7JAkZWb4KoQCfNE6wCFycp4zQ=; b=UeNrIcDBUGHFmaYlRg80RV6Wgf1uRMQ2a3BwiQPaMblA9jCX10dfjJGNkpgW66yats eBmhWxlUG6I03stzleXvxHkZpRuHryJAlH1J4tYLHP7TKcf8EeSljGcdBPCPDbQaJwvL ulJRanDt7DxaPqqHTaV5lZ+TehO/0iP3ZCB2rYE9HXFKXkby4j5jIoHIok1MPjaRowbA FJKFuSuGX8CYnB5sioir+27KwjSZ5bnd47N+u3ceoFlB+IvmZKynfnR0WJFjprV/p0DC Fe6XjMoUrPU8SM8yfcI7P6PxAR2kQcXiAF00L1SYv2KVV4G0ablU3uBeHqLAhh9ozOw5 0JHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771882170; x=1772486970; h=to:date:message-id:subject:mime-version:content-transfer-encoding :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=DOdLeHOcVzmP8lDtna7JAkZWb4KoQCfNE6wCFycp4zQ=; b=cCqXBeNiD62b2a0nsbSCUOjk8FGbSHX4lH0veNbzRvNuYEqkOLb3rIrKu5pFCCCNsY U3uMq42X5+C+OQ1FDePHRFj6neLHjg7K7Q6uDfQRuyhm3P5llcwxm1lftnUn66UpXiU8 uAJYzBFPlqhAWrIUJyMHS/ywEY6uh9ZFHZ1q++YFALBbk1+PqQBINXOBLOhM/f4YuaWC McV3t0A04qsYLWY4oc6Fzbam6vVzNeTdkrPgpkpO4eBzWP61OLX1yjrCBJyvRrwKRZcu HF45yI8LJo5325F3zpI8Hj6p/7z9K1HEpwIIwV9Y8IO6mA24zrMtCillGOkQmBlMUp5C 9uGQ== X-Gm-Message-State: AOJu0YzCh8RkVeYzLaD57pX9GBEaikwWBqjDaoykZwuZDawjMge/oCDc HBxPjZ8aT9koQQjMeY6AyhWwi8bmLhpA6PzMguiV8OPyVEqQMK5/A4gN1V6iYc3SP04stXjsbNg 1TXfD X-Gm-Gg: AZuq6aJsXV3WI/CA8t0ucyImv+vmJu5o6qkWIPspF1GadZRGCxbJvSwpHp7YlVg3dtr 0oh+gahliUB2mX65nxhsvuLN1lnnCUjRXTvcUEsXGagfztEDimSPU4l+IdWjN0Il171lMBz9/kT Ml8y8Dd8CL2WHOu33i6NyEcgydCYfrO7mcBD1a0p5W46DVEBXaRkLQ/AycSyOJmFdE7aW8XaSfB noREvTHwYqy7ETdmRgxFdO5i594rIA/qXPNYLvUVQXvZvbWR7Czzu3uVGAfAoFaR8myTuizOaHL affqRfa6B6Jjsuzas5lAefB3zMtK+az91RaMR0wkZWgxIeXUJnUhs+Q/5SMgL1tdsO5ahgC5Ydt M5suGAc7cFQe9lyIwKNWsNlFR3o9pla1/CIc3SHcXRrbvmhIggIEyyaSXZGjzFsd1enirUVELk4 cVpPcPlGw9G3UjFd1ZMr12v7Z7WeO84ZMxABchP/kutYeXhc1tGUVY6aiNvS04tYGIkHDN2z1Gh 2KO9sQDDuaEJMT7QPJ7por4mgTpGU2YmD8FXfo= X-Received: by 2002:a05:600c:1e1d:b0:483:456a:514b with SMTP id 5b1f17b1804b1-483a95befe5mr166182955e9.12.1771882170311; Mon, 23 Feb 2026 13:29:30 -0800 (PST) Received: from smtpclient.apple (p200300e91f342b69880290d55b243a64.dip0.t-ipconnect.de. [2003:e9:1f34:2b69:8802:90d5:5b24:3a64]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43970d3fdd0sm22472832f8f.19.2026.02.23.13.29.29 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 Feb 2026 13:29:30 -0800 (PST) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Precedence: list list-help: list-unsubscribe: list-post: List-Id: x-ms-reactions: disallow Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3864.300.41.1.7\)) Subject: [PHP-DEV] [RFC] Readonly Variables Message-ID: Date: Mon, 23 Feb 2026 22:29:19 +0100 To: internals@lists.php.net X-Mailer: Apple Mail (2.3864.300.41.1.7) From: josh@wcflabs.de (=?utf-8?Q?Joshua_R=C3=BCsweg?=) Hi internals, I'd like to propose a new language feature for PHP: Readonly Variables. PHP currently has no way to declare a variable as immutable within a = local or functional scope. This RFC proposes the readonly modifier for = variables, which prevents reassignment after the initial declaration and = results in an error on any attempt to do so. Key behaviors: - Reassignment and compound assignment operators are forbidden - Pass-by-reference is forbidden - unset() removes the readonly flag, allowing re-declaration - Readonly variables inside loops are permitted but limited to a single = declaration - Scoping follows regular variable rules (function, method, closure = boundaries) The RFC is available at: https://wiki.php.net/rfc/readonly-variables I'm looking forward to your feedback and discussion. Cheers, Joshua R=C3=BCsweg=