Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:115722 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 94704 invoked from network); 14 Aug 2021 13:31:15 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 14 Aug 2021 13:31:15 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 8895E1804CF for ; Sat, 14 Aug 2021 07:02:41 -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=-1.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,HTML_MESSAGE,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-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) (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 07:02:41 -0700 (PDT) Received: by mail-pj1-f42.google.com with SMTP id bo18so19630926pjb.0 for ; Sat, 14 Aug 2021 07:02:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=aMyQCn9Q6PtLLp6Z8UnMZDdPaZQZvdTc1GZTe+ufa20=; b=Pj23O3Yczo8YLMqh/nrfKSeemgs8bgMiNI/XTb+s1eYteB+V0F7zs1FSQobmKauVXM zW4Qx+2aZob0oCFrXMuv6/L8P03a8t8H2aH512KmqKI4vhA7o9mHtSOiF+qBewgKo3dL lrZDcuBE8HMjSXyGCdS9FV87dXbEQR7+CkdN2UnxuQxhlh8puvjSCRKo8T88y7oNwjRo 96KS7vnITW31hvAc4J+aP8ILgP8sPKAG4yFGd87zs146U0AKDYGgULY2z3lLp7Y2Lp6A qIophsUaqPwCu8vo9Zi/tV7oYskpFQubJv/lZ7aXuG9B/JOLucFzXmu5nNemY2MK1fFE XVsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=aMyQCn9Q6PtLLp6Z8UnMZDdPaZQZvdTc1GZTe+ufa20=; b=hM8Or6FkTcy/35JSRjiNVs+fIeFOIKi84mjuHohuUA6FYJd7VftshUpgpev+IpfE+P Wa1+WiyJqziNSTrtuW6HmeGz9o9DK67FOln9l9ibtEES/2JsMGRtjTzwLFRDSBXMLFct LfQXreqpBXiZrV1OnuAMMrdNaHciEC016N3zR+K/dtwEsvPGQCFkMte0MTzCSvXtPp4D KteBWi2CYZmHqLwg6ExM/gwvuPvz8TDbFhLdODOf5jXa/LMBtVQAiohMS1ioZK41tpTH UbL2N7BEZj6uVLGXPU5hG682qMMt0dBmhRv+hJFRwogOJ66O9DiVd2TC8rzWw2KwrIMz k1Dg== X-Gm-Message-State: AOAM531UyUiu+m2zMguYiYsR3H8pwa9I6SQrDLRa10+ZiexRAeyvQ1T8 qfdnRJsJUA9VS/pdHuV6FwHYKZoIl5DqKboHCVhb5THXzOk= X-Google-Smtp-Source: ABdhPJyxvyP+/LYauWQT7pd85JC8u72zMFkRYnyua99GMOHvPFKrYHWY91ZB+raLXXL+DZ5sQ6SnCuB79lQ86CSayU8= X-Received: by 2002:a17:90a:a78d:: with SMTP id f13mr7430978pjq.206.1628949760081; Sat, 14 Aug 2021 07:02:40 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: Date: Sat, 14 Aug 2021 16:02:04 +0200 Message-ID: To: PHP internals Content-Type: multipart/alternative; boundary="000000000000ce864d05c9856b34" Subject: Re: [PHP-DEV] Unwrap reference after foreach From: divinity76@gmail.com (Hans Henrik Bergan) --000000000000ce864d05c9856b34 Content-Type: text/plain; charset="UTF-8" Speaking of, i hope that one day we can support javascript-style let in php :) like foreach($it as let &$v){} but that's a discussion for another thread (and i'm sure it has been discussed before, i haven't actually checked though) On Sat, 14 Aug 2021 at 15:23, Hossein Baghayi wrote: > On Fri, 13 Aug 2021 at 17:59, Nikita Popov wrote: > > > I'd like to address a common footgun when using foreach by reference: > > https://wiki.php.net/rfc/foreach_unwrap_ref > > > > Hello, > I had a question regarding this. > Wouldn't it be possible to limit ```$value```'s scope to only foreach's > block then discard it? Unless it was already defined elsewhere. > > ``` > foreach($nice_stuff as &$value) {} //we are done here and no need to keep > value around. > > echo $value; // $value is Undefined here. > > $value = null; > foreach($stuff as &$value) {} //we can keep the value here since it doesn't > belong to foreach. > > echo $value; // prints some fancy pancy stuff > ``` > --000000000000ce864d05c9856b34--