Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:129835 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 AC7BB1A00BC for ; Wed, 21 Jan 2026 23:33:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1769038405; bh=udCy1x8K/YAGYbv+Y0gEpNPSE47g1c7qOWV21kC/91Q=; h=References:In-Reply-To:From:Date:Subject:To:From; b=f+fBZtzvSXsY1C9BXiCw5fDXmpmLzMQE9VlZcZ2zLHYvSX1HvsUfjK1+rH+RYMEcf s8jQD2n8MkAEtJDVzgicNmqd0LT3a2WbhHjsVW+1ugkFdhicZUAbVbutRvEN2KTJuY 3JQIVzN9tFG8UmeB0ft56lASazt0ZGStQhrR0VaRUBr9RNEagpClwSaHm+wLz6Zm5m mJX7CPjnvUTeYdT2zI6b6gvWPBH83FmF0j4qUOaa8hTMMxrsqvLR6IbhckK8+mBOQH LHsZ4YraymtSkbRUETztgXMCeMadI4hzgMRG+0Zh8SnSZ8VGnyaoT7wxVv9MGu3UKi JsbCfhvfYMj9Q== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 71272180068 for ; Wed, 21 Jan 2026 23:33:24 +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=ARC_SIGNED,ARC_VALID,BAYES_50, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS, FREEMAIL_FROM,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-f45.google.com (mail-qv1-f45.google.com [209.85.219.45]) (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 ; Wed, 21 Jan 2026 23:33:24 +0000 (UTC) Received: by mail-qv1-f45.google.com with SMTP id 6a1803df08f44-8946e0884afso6557916d6.1 for ; Wed, 21 Jan 2026 15:33:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1769038398; cv=none; d=google.com; s=arc-20240605; b=DQa7sHGFltPCDaqcVtNMMd+Nba5/9dstgLNvqFBDq21Q2iNmQLPCHJxsdStXk77id3 FmzagzAJzNjnx0KHpgAPsET3Hm4aCTY7EdUMhH4yOjkEkFBUWHaGnhbi0qf8gEVg45Ge xQ07/3J14KChS8WKFSEoazI2G8MAwlUI3tg9R63CsF/fAdRYdBc7JV9FG4HTkRGC8o+u hFUsdq06emFuyA1jxTeX6l/9LVyIsWGKJjLesrklJby5DOe5Wnoya2Gh+QwT271A8KSg pMv62GMyecpBvbEBxfKerhTJY7JwdvGdzUTafaJRX/VF9Iftd5uCzjJrrQTZTTWYzHkt OtQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=5xwyZSvbOfv8GMw9vgMXf0W71oxgxgZhT03ObHfU3Ek=; fh=PwvV1jWZOR90rDIG/6XexqaHJyAFBTdnFVhsS64qdEQ=; b=CDuY8r9vM8bfhR2nj8cVb156psCUreb7NoDWcO3FIwLZmOOrKSxm19r4g/nLmzWvIH 4o7iQOTgIk1F9wmMihpq6KvWTM+vsOidTK2s2SnrQili4NXRVIfmhG9iHgdAyf3MusAz nePZH5jrbpWSz7CESlzwmshk11hgEBOM3kl51kfVZzlGzfjbV3LCya9BDVVEW8EcI7FO 1d0wvLhCE57dgfplqej/z+y+ouvfH84Z4EgSEjp49Jcd6Au8h9Hn+PfJiVB6Jm1iPRJZ JHDRrqmEvLJND4k1ACtE4JBpOYsfh/LrHkeeCI8BJLXH/eLwRmxG6m4YL7p3daRUuL31 G3LA==; 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=1769038398; x=1769643198; darn=lists.php.net; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=5xwyZSvbOfv8GMw9vgMXf0W71oxgxgZhT03ObHfU3Ek=; b=Keu+lhHasUmnKMeuZqUG54UdKge1SvRRRBiO9e1VMYO44I4S+j4gjv4X29qULkkQXT W0TSvl4YkVnyCieQl6TCevejg+0SvT7rec2+xEpHAPKY4YULW+D2OQrFyg+JuCqH1Haf n+ZkqACRZNVJ96J7ecIMWl6iQrUKGiy79W2fv5e5R9s61I6AfpCQvv0WRBYBql4l5bjB HgYh1jHShbhW72UJ6/iI2qEA7+l9KBEM+aNlnlQ661fCZAYEhFhSdyqZPa1FqBz7sQb1 CTcOQJXK8FVRDdXccvvppE0Zrw7xxt1t3RcfKG+tKbvIGkBetn2mrJdonSZkVVc2oQ0M Gd2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769038398; x=1769643198; h=content-transfer-encoding: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=5xwyZSvbOfv8GMw9vgMXf0W71oxgxgZhT03ObHfU3Ek=; b=M/t7TA/Vuoe7gExbrcYOnhivXbLYuctrq2O8lAph12SUVVwdfYzMwh0NLY3EXlv328 BIjbWyMSPiFh+2KZsZHHCElmHRpOfJeCEmxLn2Y0iL46GH5mzfTyqaDDFC9jtuKqttcw hxO9YYBhrkxgZgjn5BA4uGhycYCLkDfuzmrtv7/vGZquFpeBrWgY68d/i5Mh5sb7JwXR F4I31UI459M3Jqcc53bFgDkdsCOhxQ22EKAtqr0UGX+Lk0oTuAHNz27UhruVcSlZltd7 x8yR/SqF3VO3OBlB4IyTiSu/p0hfBMdQ9KEQ/W3JMO6lLmYawldEUHuWC8YAHRLQpzxy ZccQ== X-Gm-Message-State: AOJu0YyaYg11J+5fgUB0NL3Sxt3uvP92glfCKhW6+nIDAHURfzi2K0Ov ooxzXA/spE0mvNmLAmYITUsXfA3D3zzq32PGBMmdT9W1ESTBITZnycuJsnl0wgShSdOubhjCYmp g3fm61zD2nv3GdT+WN85gUdkQwRZzIJDC0bJdsAU= X-Gm-Gg: AZuq6aIE3WwsjqfvUnHphOP8snwdybp57ZakkakTQWwZnTaCM9/sZ4B7EOQA08GiVpE 2csszy3Sp1mhMFRpsbp/TiJH9UbRRS3ZDdblMaQaLbySkxXgTRPrded264Nfxd+xWzem8AEkiJQ 10baGIZ40v18JquVHxJ4rEvY4EAKEtnxI+Ta+XAIx3u/6a/JgCIdP2uq+yl1xxB673WEiJbGtaJ BoPlC5F64SQBz1jjgQk5tPMdzWava0vCS+5/u/gFpL+6f0RIBvQWkfSGoRW/QDtQwkraxd6VKJ3 G3ig1X+JPOHMKQv8bbuxM51YAQSl X-Received: by 2002:a05:6214:76a:b0:894:62b2:12a0 with SMTP id 6a1803df08f44-89462b214b1mr111681496d6.22.1769038398171; Wed, 21 Jan 2026 15:33:18 -0800 (PST) Precedence: list list-help: list-unsubscribe: list-post: List-Id: x-ms-reactions: disallow MIME-Version: 1.0 References: In-Reply-To: Date: Thu, 22 Jan 2026 00:33:06 +0100 X-Gm-Features: AZwV_QiGVnp_nxa_3Kl2U195r7P98EGdIQXIHVJscFQ8QrCCxOm-w7jIz3y2FQ4 Message-ID: Subject: Re: [PHP-DEV] [php-src] PR #20903: GH-10497 (const obj->prop write) - language change notes To: PHP internals Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable From: tovilo.ilija@gmail.com (Ilija Tovilo) Hi Tim On Sun, Jan 18, 2026 at 1:28=E2=80=AFPM Tim D=C3=BCsterhus wrote: > > On 1/15/26 07:36, Khaled Alam wrote: > > A potentially surprising case: some newly-valid writes can be a no-= op > > when they target a temporary const value, e.g. > > - const X =3D [1,2,3]; X[] =3D 4; > > - const Y =3D ['a' =3D> 1]; Y['b'] =3D 2; > > > > These become valid syntax but have no effect because the write happens = on a > > temporary basis. > > > > Feedback on semantics + expected behavior for the temporary-write case = is > > appreciated. > > This is too unexpected / error-prone for me. Trying to write into arrays > should remain disallowed / an Error, since this is never (?) useful. No strong opinions on my part, but I'd like to point out that similar situations already exist. https://3v4l.org/ARMMS#v8.4.14 const C =3D [1, 2, 3]; function foo(): array { return C; } foo()[] =3D 4; var_dump(C); PHP will happily duplicate the array returned from foo() to append 4, without warning. The original array in C remains unmodified. It might make sense for ASSIGN_DIM to warn/throw if OP1 is not a "pointer" (indirect, reference or object), as then the operation will never have an effect. But it seems to me this is a distinct issue. Ilija