Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:118863 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 14580 invoked from network); 20 Oct 2022 17:23:36 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 20 Oct 2022 17:23:36 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id C88581804AC for ; Thu, 20 Oct 2022 10:23:32 -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.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,NICE_REPLY_A, RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS8560 212.227.0.0/16 X-Spam-Virus: No X-Envelope-From: Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Thu, 20 Oct 2022 10:23:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1666286609; bh=QcWOW7P3LLzWslCXymroiRXyzn3SfnvJJOi0zy+f270=; h=X-UI-Sender-Class:Date:Subject:To:Cc:References:From:In-Reply-To; b=jj068YYtEPHeeUIUj000owPlf0TW7ILDAHGR1+WvkMYiQm3dcSquXD0WZ+RV/3YCE kuAwthjwtkd//xdL809cxaEf0k0tgGcn7koKlBX8PJK3mu+ycgahwA9I6wTV/G9NHb nbjf5SuVcH5+PhvLk9acjQC114UQK18rNPRndqNQ= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.2.130] ([79.220.74.72]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MG9kM-1otK6X329U-00GVDf; Thu, 20 Oct 2022 19:23:29 +0200 Message-ID: <261fb40e-c60d-8ba5-dd3c-36d381c449ad@gmx.de> Date: Thu, 20 Oct 2022 19:23:30 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.3.3 To: Rowan Tommins , David Rodrigues Cc: internals@lists.php.net References: In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:lF4KkskQTHHs9n3AmfoRexlY/C9oN530VxttsR4Fo37X1sKdWAa i3lLLwdwdMs2EZ6rBLcfERfbD+mOt2zrWU9iw5Z0TERjKgbhMQC+5q0CsVm5ShwVuqJCd4J T/npjrF13Pit5Si99XuCU2yaOxvz/DQRZ4RJtTB4m+aZqA6kkGUfIFCcj72azhW2eKr6HZZ 7Wz+jGixRVVpnCHg3PeGQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:8rOZv7DiWn4=:5LIEPvli0Bd7ybCz6DsCsK WyedmyKPPxhNQPf6dwzR8PqI+sXcVVGhol4yJFKZI2bfPxWjt9Ka7BYrs2kTjYz/LFqfCS9Nj XrD/VShWzszGANxfcY3QcPeiZv0OOd01rjx9qKNrjiac+YcsGbwezdXTjH/7xFCOdJvq/0/s/ czCe+Nac4iVRMytdL4AJoBArbFIMvSY+peI2+Ox3vnbuYvMhMYvRZpJtUgb+NiFeqphiTSmfs N+1k/3ZiHRKBAAGHxF1aSq59RJbdJRBKU/UNCh1uL3rlbwnSDp43LBIG27GQ7QYHBpylGQd+P ykCXIE3awuJ2Ai62VL40eb2v3S2eHXlyZQFwK3x0+BBbENZXHl0H52geER5v6SGy6Ns7oy9OP JucKgpmpzglCfc35TTcr3CjKBDiE7qiN3iLskmg3lBaC6Wd8R/zjMvcoHKVxB/Uxm4AEQ2f+N aeK3pjKjDNZtvoPPkkPApra8w3S95xkhVvumfr7lKJOnvdaT5OoHVLazbzY1wj4mfYxRZce0G 1lzm3QVFYLKHa4UNq/8ED5TQIYT4LQDU2aZqVsmRyyaHzFJiARmExmIM9Iii3fAtdS/LclDkf P3ray9E38+Gx3BozgHMgY4med9QpzHyTn1jS8jYQUCnXBuhe7W/VG//nzJ3xaUusKRIk8eu8q /16TiuUQHd+0pO35o7Y8sR1V0IP8xa5ZFr4l0KTklrp188/P8J2TCd/2zbmHjQLYb8l9rK439 m+tMUmUPu26ML8zCDPONrEIdafiUuKlhNrLRLwFPYMbicdFl3mXFLWcsqsjCYuU8F9FH3ZwdH MZ2gflpdM1w8rwDyaaoKFNyp6MeghprzlRXAs1NYY25Or6KoNEDnkBfDrrKvtoO6mCj2fcznT Pjq5Tr15n4A64NaIk9xgthN1f5ka7dS1opUyj9Eeh7cyG6Gu53ejVlWCpWGbasAADrZ1Bqmgz Bh+KMy7YOCzMBHfvUtXKBkTegPJRfsK1fDd99DSblf2igwNoZ4dKPFzESTtdQw8rqmeKPuXhW CQyvb2/EBKXHT/o8XDHW9RvFPiCM6L81VhrEmVbt7Bj9T3d+XuFccfucl7eCvoKkUZFVXDCNJ xFLTlWjidLy6dAwMSZOizPSHty9KGW4t6l3kNiPBhKu+MrdKFvyZBRY7H6OxqZ9/rZ6BVGX/x 8VmJDGCYksD8RV3K7/xsh6FZnF0tlQgAe/cJQJGc9PcvnaiAnHy8LC5FlEa4+ZsgKyzho9B/7 8Y7pnAAsgNyXOkmNexCPCLkFhTyY+BCXzhDNbR+xpASX+8tc7XSWvns4pZpK5nLYW4srCP5oK cjFOvnYnsc5vRB3T3misOGcP7wu1dp4BRwoKi5gco+Bl2WZrKRVUtk8E9+1zcxGQ9xcNs5Oz4 l1+PjxqTZ0CHrIlhN3hxccKmp/Er1lr94+bGm5CHzLJIiJQsCWkfcqwibSs/BRw/50jxtU/7C dTeC05+QG0xZ49YOkZH5ptHl9ATLJN3q9OFr1riLK39EInFzkZzo1JalkEig/ex0h6TcrYCtu oF3OU1s35YChaHExbgLbahXqwISIwsOopGyDspFpZgUMc Subject: Re: [PHP-DEV] Compact can't resolve outer scoped variables usingshort closures From: cmbecker69@gmx.de ("Christoph M. Becker") On 20.10.2022 at 19:03, Rowan Tommins wrote: > On 20/10/2022 17:48, David Rodrigues wrote: > >> Regarding this, in case you're literally saying that internally "fn()" >> turns into a common "function", and getting back to the main topic, >> would it be possible to do the same with compact()? >> >> fn() =3D> compact('dummy') >> turns into: >> fn() =3D> [ 'dummy' =3D> $dummy ] >> which turns into: >> function() use($dummy) { return [ 'dummy' =3D> $dummy ]; } > > Yes, that is what I meant by "it would be possible for the compiler to > special-case this scenario"; Well, in the general case, the compiler cannot special-case this, because compact() is a normal function, so might be used as "variable function", or may not refer to the top-level compact() at all (the called symbol may not be fully qualified). > I explained why I think that would be a bad > idea, and suggested an alternative. ACK =2D- Christoph M. Becker