Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:115705 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 3338 invoked from network); 13 Aug 2021 13:49:20 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 13 Aug 2021 13:49:20 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id A9779180504 for ; Fri, 13 Aug 2021 07:20:31 -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=-0.2 required=5.0 tests=BAYES_20,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,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-ej1-f52.google.com (mail-ej1-f52.google.com [209.85.218.52]) (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 ; Fri, 13 Aug 2021 07:20:31 -0700 (PDT) Received: by mail-ej1-f52.google.com with SMTP id b15so18538129ejg.10 for ; Fri, 13 Aug 2021 07:20:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=hOUI43X7EMwxaEGZx7xV3g1RiJPhBCdu21gSoe+sb9o=; b=iKf4+zeNahWDm+/nbHBDlylfgNshWi0oJU8i07MnU7ulpd0jHIuy12VlGZouRo+w70 EGfgNasdowfhR7Otkt+vlM991NCnps1XoSkBrdi1zccImveDX/t51Wh8VSnvZgLndYu9 BSEiImrCl+4QwRB20uyr52U8/nurwdXXlq65hl3g3FXT2qoqc2kxhiYY47J5/xYF60IN SKE1AXlc9Jo09YalN0FHQ672jcTYxbywg4L1TVCvWVSvtMpbTk5xnuNzvu+Q/tevg+up tYWre9n96vWlDu4/Jr+YdMhua/3Q+CxxojlEOyOd1ktHSbPLZFbXBdVrUIsR0NwTEtjm SLqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=hOUI43X7EMwxaEGZx7xV3g1RiJPhBCdu21gSoe+sb9o=; b=CjC7JWwOMCts9c/1Gm3tbCzz4VbkLuNwUv0lMUQIHn2F2wQBZqZ4DkQIkgTD47kfbb YXhqaDteYLWkbk89nem45rnQ7rI0dske41kzneATI266P5GYXGJWKJRoeIo0/vn/bVYF H648Zzy4A+3oYog7+ACTb/Tg8DswnT3dkDpk9eUXEc487+BWhx0i9OoZ+KNjUxAkoaMB cqJIXEiR4az1ie99zYKHaffeeN8AyEZ2qWzOG6Kg27WJXwfu6iVVND9NtdgPa250LHqR iIZYFw982O1P/o3yfZQpGWLj3vQfx7nhpc5qO4ON4G4wI97D7elCpjLKgBEF+jQOg+zv mPTQ== X-Gm-Message-State: AOAM531XrEBuOLb4wDCPUrZg/7KqF1iWFfq0w4YWli6cSCMhm6cAKIyl BSUL07hIMOqArUWYZ3OH2YtH/29v4T4= X-Google-Smtp-Source: ABdhPJyodlLHwaz3uxc0QQHkZzwgPaRFkYmv8Fa3i1ICc8ALTvkBs/fK8bUMb6c0BE4W6j6vO4HzCQ== X-Received: by 2002:a17:907:2706:: with SMTP id w6mr2670575ejk.101.1628864430011; Fri, 13 Aug 2021 07:20:30 -0700 (PDT) Received: from claude.fritz.box ([89.249.45.14]) by smtp.gmail.com with ESMTPSA id ks26sm682794ejb.58.2021.08.13.07.20.29 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 13 Aug 2021 07:20:29 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.7\)) In-Reply-To: Date: Fri, 13 Aug 2021 16:20:28 +0200 Cc: PHP internals Content-Transfer-Encoding: quoted-printable Message-ID: <3101FD49-44C8-464A-AF77-1859A51D92EA@gmail.com> References: To: Nikita Popov 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) > 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 Hi, I don=E2=80=99t like the split of semantics between simple and complex = variables. It makes the language more inconsistent, therefore more = difficult to reason about. On the other hand, using a complex variable as reference in that context = should be very rare outside obfuscation code contests. Therefore, I suggest to deprecate (and later remove) the ability to use = of a complex variable as reference in that context. That would solve the = inconsistency issue. =E2=80=94Claude