Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:115727 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 5839 invoked from network); 14 Aug 2021 15:28:57 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 14 Aug 2021 15:28:57 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 2E1171804D4 for ; Sat, 14 Aug 2021 09:00:26 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: No X-Envelope-From: Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Sat, 14 Aug 2021 09:00:25 -0700 (PDT) Received: by mail-wr1-f48.google.com with SMTP id x10so11139368wrt.8 for ; Sat, 14 Aug 2021 09:00:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=UlnfFG7hHFSm9PVfI00KgWKWy3d5wHGUDzpATAk04WE=; b=o6NvrYw5I2u0/cFzZ5KpDk+a1/UzDt6h6iS62OpzorWiBLT0+TiKxelTlz6FOfCStp NAExiW/x0xLvuhF44PozjuSUYBOSia6LCLLHrm+6OYssnDBqiJzBqJd2AoL4ye7GADDi meViM1y9p8dhWt8Zy1qSRH/Q7v8ke4udGiL4tNogGX7muPdi8NqSHglpSTfz+IyKKwBg 9DEfiRT+KMLAlSeLPoLplXTF/AcWK+zS+wDA36PzR0kw42OrRZ1twKerLDsbjREsZio1 em2KOQ0MTwzwGeoUYxDmkRNs/0W8ECdO+s8FCIvJAPNdDPrOgIWgE8hzhse02P8Uay7d RJJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=UlnfFG7hHFSm9PVfI00KgWKWy3d5wHGUDzpATAk04WE=; b=nJTlWMDI8GHMt53umzgO/GNLTK0qGhh0tTNcRkO6LNJp5IMcdrcLN0O74YnMtKH18j 3YSL+u0f3UTpRuAulMTkxPMRpSo+AF/4tRBcLZ6WI27vNFAL4Zs1N8Gk2UgxLTxNjNxs eHHKvvvteC8kQGs3CecFXChIRHLOG/ABU/1lnqyZASpR94GrR4AMlYq4bf8SakV/zXkK F4+mzvKOmBQeGl9RP3D0qepV4M4FjZhFmYixSSgLYoj3xW7INmN9zRrF7ZCgh26W8R8u LwFG+rofujLzd1BPDwLFrIDL3aK7n1VziXVvGUlq2NCdMwT3guKDkvEjzuFAFrD4ULAU 6+pQ== X-Gm-Message-State: AOAM531r+LR6VwLaSBCU3VAyy6ox788kapT41gizrTZeaLAAfLyiCZ+y jirtS/f9GmM61mvAT2jb0Q0WmO4YKvs= X-Google-Smtp-Source: ABdhPJyVXCymg3rgLYSWQHzHVpJNIFDUR++Do5DZRJLa2frsKBZD0TlTtdp706AXDXSvZe6qqzSrhw== X-Received: by 2002:adf:f704:: with SMTP id r4mr9276662wrp.389.1628956824323; Sat, 14 Aug 2021 09:00:24 -0700 (PDT) Received: from [172.20.10.2] (26.236.197.178.dynamic.wless.lssmb00p-cgnat.res.cust.swisscom.ch. [178.197.236.26]) by smtp.gmail.com with ESMTPSA id k6sm5105000wrm.10.2021.08.14.09.00.23 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 14 Aug 2021 09:00:23 -0700 (PDT) Message-ID: <1AE70ED7-156F-4034-AD63-A3427C765DB7@gmail.com> Content-Type: multipart/alternative; boundary="Apple-Mail=_ADB05C02-3D60-4983-8F6E-D08D5798C286" Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.7\)) Date: Sat, 14 Aug 2021 18:00:21 +0200 In-Reply-To: Cc: PHP internals To: Nikita Popov References: X-Mailer: Apple Mail (2.3608.120.23.2.7) Subject: Re: [PHP-DEV] Unwrap reference after foreach From: claude.pache@gmail.com (Claude Pache) --Apple-Mail=_ADB05C02-3D60-4983-8F6E-D08D5798C286 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > Le 13 ao=C3=BBt 2021 =C3=A0 15:28, Nikita Popov = a =C3=A9crit : >=20 > Hi internals, >=20 > I'd like to address a common footgun when using foreach by reference: > https://wiki.php.net/rfc/foreach_unwrap_ref >=20 > This addresses the issue described in the big red box at > https://www.php.net/manual/en/control-structures.foreach.php. While = this is > "not a bug" (as our bug tracker can regularly attest), it's rather > unexpected, and we could easily avoid it... >=20 > Regards, > Nikita A case that should be mentioned in the RFC is destructuring: ```php foreach ($foo as [ $x, &$y ]) { /* .... */ } ``` https://3v4l.org/A5Vi7 I assume that the reference in `$y` would be unwrapped after the loop? =E2=80=94Claude= --Apple-Mail=_ADB05C02-3D60-4983-8F6E-D08D5798C286--