Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:130786 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 520D91A00BC for ; Wed, 6 May 2026 20:09:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1778098194; bh=awKXHQm2nZHsqov6QqIFqoobuoSziXJ4nZ4TQ/d0uc0=; h=From:To:Subject:Date:From; b=BEdtuFMB9eZSNpL9qqNMVEjKEQgVH2x0DpzIrxpKbzAHIy2tPriP/WzTaavhGAl6P SCLwBV9+oJ2Ejn0vauc4XwASbyV0ojMtp4WM6/fuTbcbQYog4qA6ePLfDGlGoh2LE7 6MTv1pf5KFIiyvApDrw4T5fdKjgwRX5TKhRePTr+8W0BfcnToar5UTuxA/xpf/Ttlw EoxEGuCPPVzHBCFoGqjnYdhMMCZJ0jNn3FzDZGFf6Jg4GuROURLARJFUceLCDc2hGo LgV1dSZfiT16iimWFXgH1mRO8JCnUA2Cz3XW0vYFmrbsZxb8hdLCBLVbRkus5L6NM6 l2nEeakiBleVA== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 461791801DF for ; Wed, 6 May 2026 20:09:54 +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.9 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS, FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,HTML_MESSAGE, 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 SVZP279CU002.outbound.protection.outlook.com (mail-norwaywestazolkn19010002.outbound.protection.outlook.com [52.103.52.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (secp384r1) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Wed, 6 May 2026 20:09:53 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=as5bKgS0epGc9kPvkHpNbPGGCFRnVvhb4gpqojzMvWigJhVRar1g4xV44essUKCIuaLo2uRMMx8bFVhUuzBxfIu/IQ7qpr/AjUQ/GFFP9e2P+EFXZoAXMXn0hd2QoJeoOslA7kkZSD3K7yXOwZnn1XqEuVsKsuulV7fmV9M7qH4CCpXtfiWxNPkoRypMxQQcNOEPcICVM3xh7EI3Vmwsui2TN9HiM1f9vnufnFIQ4mIDLscf09/xORFsC9/QAiOruv9ITGgFRajal336ixumUTGAMJ7nlYtOqCYi7bY9DEUhf/YLahRqpzSAMBru9aAy0qVPFD0ju6AzPo+CglOsrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=awKXHQm2nZHsqov6QqIFqoobuoSziXJ4nZ4TQ/d0uc0=; b=aF9iSjpC6iVE1QfG/ybsoodGzDqox75lvjhKfHKosWmISgg3mvzb8b9HMNBpStLVcILDYSVLvney4R6bjnuh6jfah0FszWCrFX5B4qAIJtCEaXVfy0b3oiuDR3agnBuHFnzNp3t1FAQOtHcujdPkOSyA22IXuurI41NQ06dy2NENmYPkG/MjDOShtqTcGeMeazu78RpXC6hi13eUmAc0Knb7fYZ0O4G7I73Wdsd+3jF2OUYcUYrq/eV03g1OqTUlpMZLs8IjTzj66xgj149hJDmylZOCFhKczSq88vb4FUlM4+xt1BfUB24Cz2Xkq2JSq836sq+0K7hT4WlnqL3TBg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=awKXHQm2nZHsqov6QqIFqoobuoSziXJ4nZ4TQ/d0uc0=; b=ilnIjzaQvXSVn8Zre9BUBi+67ECAoWtnFjfQx4e2o0JfacYyBZASevKG1LduBFmjDpLML1I/sI9MRYpaYcyV46zJLXGfPP9D7uoRuzbQp4yLQGhMvuLS8NQElgyuKOfci0z4x5Vayj7OVylkysS0K6ylnXAbLnokMxBU6kJV7bHkq6J1cD0ZrDq2sPf1UfHsmvkYQcJm9A8DqaNNhB3AwniG2AjYJtqW0znXPTa7frGnOdCyMR1PkFxojMF/9YWOxL0MLYSm8YqEQNUpLu2vc0j91UPGz3/LksH3/1hrOSA2FlQTBOXiHRvvEthzpVTU0ieidj4+vYnX7zMQMesUqg== Received: from SVAP279MB0383.NORP279.PROD.OUTLOOK.COM (2603:10a6:f10:1f::6) by SV0P279MB0680.NORP279.PROD.OUTLOOK.COM (2603:10a6:f10:22::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Wed, 6 May 2026 20:09:45 +0000 Received: from SVAP279MB0383.NORP279.PROD.OUTLOOK.COM ([fe80::adb8:fa3a:bf3a:1780]) by SVAP279MB0383.NORP279.PROD.OUTLOOK.COM ([fe80::adb8:fa3a:bf3a:1780%3]) with mapi id 15.20.9891.008; Wed, 6 May 2026 20:09:45 +0000 To: PHP internals list Subject: [PHP-DEV] [RFC] Scope functions Thread-Topic: [RFC] Scope functions Thread-Index: AQHc3ZRIeT+obubHmEi77k19ffkjuw== Date: Wed, 6 May 2026 20:09:45 +0000 Message-ID: <0187D382-80FD-432C-B0D5-B0F9D8783419@hotmail.com> Accept-Language: de-DE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3864.300.41.1.7) x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SVAP279MB0383:EE_|SV0P279MB0680:EE_ x-ms-office365-filtering-correlation-id: 2c816d5c-730c-47a6-baba-08deabab6ab1 x-microsoft-antispam: BCL:0;ARA:14566002|19110799012|37011999003|25031999004|461199028|51005399006|9400799043|8060799015|8062599012|31061999003|12050799012|15080799012|41001999006|24021099003|10035399007|4302099013|3412199025|440099028|102099032|26104999009|1602099012|40105399003; x-microsoft-antispam-message-info: =?us-ascii?Q?gdE/Ft5mw+ZgqbedO4/+/guOA5vWzCXC7XxPwaEC4Hxoi8B+hMEHrDXGPygU?= =?us-ascii?Q?h6bjBGAJRM8R5T7QSHoqlK3M/zoZYn1t63piJKzzENSlnZf9vSg//+kkFqGL?= =?us-ascii?Q?22xGC9jW+UFCSKQmvyZx7SlOC5wOIPxJvuRgRt4CI2RGH4gzjf3uYVl35Ey5?= =?us-ascii?Q?7ouGmsIry1LY7InMWRmHTBcA612q9mBi2lxkdJnSJqBXcYJn0HzXCmSKRZ64?= =?us-ascii?Q?4R+l/eWNiMYFTZIztXvxojFzGhW0Z3wCiQKSYWaAEwFAXsLEWwOTTJPF6qN7?= =?us-ascii?Q?GuYHH4Zj4bpqGN58lNhF+Hc1qHaM87hdTEEH3sbLORcpJFbS+9ptTVRmhdzW?= =?us-ascii?Q?xn7q9gib8GAIMNULigoPqTrEhEOqZJ2K4ZAHhVe3XGzKhnScvHROKmwwODfi?= =?us-ascii?Q?i4RwWFs8HqhUSX58T2EyvMOujJYb44mhNrCiVZhME8YAF2vE5rRx4AVPQa2v?= =?us-ascii?Q?UxMbhWY7bnhLIcP6mXUwSKMCM79Q/2OgBN3KkN3RWfUIioIjiIPMUlOYTM8Z?= =?us-ascii?Q?FWHgsFTXwFSo8AZpLwTNokdtxZr+MHTIfsQcaAWh2pu3BoKEw50h8yi/ugPp?= =?us-ascii?Q?+8khnYMHaiuNied7VDt65KrbInY6o8HJnxamxeEPL380pdzX26Nvxv7X0EQs?= =?us-ascii?Q?5muGr1jUlaly+oHSc6sgxfqlQf1P7lMIhP96JckKVjtC7M3Cwt0Q6KhpYj3D?= =?us-ascii?Q?4lFlw7krAj5R/6feVMxGX8wBllYIBV3QEIBp2ognPAioMELrcfPlgCiYHdbh?= =?us-ascii?Q?D9QmgLfMZ7aXuK+/PhWhtU+cGcEr3cyAiJU7JK+CHM40wPZ3cBrhhN9v/2YA?= =?us-ascii?Q?sOJuAsppVpvkcVFRCJi7AHybJ+y0svtwpyEiOcxogq1Yh5aUYd9t/Hw1rXYg?= =?us-ascii?Q?8d9iIala3Lk4yLdpOLDO8AV+M4qU1rQlwvImzw0SeZyl8Zg1rFW+Fk2sPZ75?= =?us-ascii?Q?OyPK2cECWtK9l77+MKNhLs1j8Jc71lkLYCn1qGkD9jab7VvodOSEeEP6JAJC?= =?us-ascii?Q?Oa/V0XozJG3rmP45cMwL5BEzzV7xRaVQI3nShz/PG1DZIBvo2ye+S7E8UWHk?= =?us-ascii?Q?UuiLeDLNZbdcasZ0J+JtTpj53vWr2knZJmm9l+83F6jDDfBZpQs6HGVuaSXo?= =?us-ascii?Q?dAcic8AtFQDArMhzsw/CEt690Rx0OEtUxXYjjJo47AkggK8CfrBVK7+90Kdh?= =?us-ascii?Q?jnBuTtt8vO+xFfZR?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?olUzHJNwJR0RkPiEgjtg2ahvnINqO40ybEITgKpfZiTTgPXHWX148cbczwTX?= =?us-ascii?Q?0cu7m4NsOILwZdEriSdNTqvqQcPSeXaTSX+vcFBCvg6GBW9IR0/RS0G1kbCW?= =?us-ascii?Q?UftsgihpHby/4p+boime7o93pl1Z/4OBnY2YCYtw9j6InndiG+D/OEKVAg9m?= =?us-ascii?Q?MSyxz0GimyED19gaNcjlUwhR1T9FYv6L3j8qyP8KaBBMz2+aB0dTi5ezpmEH?= =?us-ascii?Q?dKCgdH0EUjx37rwwpbd0qbbX/d0YQfSMSyNdhV23sWRmnreuZsZBUyIqTexS?= =?us-ascii?Q?8mZWmJGLBPoMTk9d0HJ839JEWKo7GDp2U6J4fYgY9LlXZC2VQkRwwlQ1EqT6?= =?us-ascii?Q?v6cz6inaE9HltHZVUAYvP/xa5/y/z1oV0j45t7AEdyyXwryVCt4KZdL6OMer?= =?us-ascii?Q?IvSY+4EeLdLjKb40p9sx80FbyF2019aZY6D0Jr9xxZVRH/I2XsDNNYI4ne8d?= =?us-ascii?Q?4507RTwI5QVbfqAG9z1BJSgP+5UmmicXktDPfrAEwy3/56s/Qv/KuD6Dco5U?= =?us-ascii?Q?KWBoQQlFe7W/rGszAv0WEefKl80vdpEHxZvQhYEiiC/hAPmoMTr6ugs1Y+H8?= =?us-ascii?Q?36kYv+p72nm6qtDihocqcwndTqfhoAwjntA955ZAY9NAIAF38aSR63Ro3PW2?= =?us-ascii?Q?SYG1CwNyYFPNbchQKyHgelFoeAiHPh2XuY4FjBOTCWsPz9EoDg90a8XwYFTv?= =?us-ascii?Q?4z5gYV0x3QtEgw4lgjfJPVnYEyo2vXN0xKSvdnU1cgnUBmInyzOzjOsDVfjv?= =?us-ascii?Q?xUuBbrsIKDKY9Ar5Wmm3+BTbgRhpYX+yvn4510sTm8fIwOoixuUNjFeb+K+x?= =?us-ascii?Q?ePnirgpzwt5JjAmgT86KISrppdK1heNb6EkM6iFFsKBm49Lwq5KGTWRiOOOW?= =?us-ascii?Q?+D2u2c9rYizGlH/x4FfDYajAQIMhKFki70VUTdKWyhqE9fR+7Trl02X9IEKe?= =?us-ascii?Q?F7QWykFRsHrxidLoc+oWCtEQDpZ+uJwp8AlmYzpsXnNK0mMq0ZT9cDDRQNrK?= =?us-ascii?Q?kydM99aWVGimm46lOZRrujytR6ydnBW6mlzHI9MKEAC173BmG03QdSLXJTkD?= =?us-ascii?Q?TCIN70VuITdtANr6MS2/+Q5CaFAr4ymoZ/+sNxL+kEhyGXaMaHo37al1JEzU?= =?us-ascii?Q?dUjaDEpXHEcAUbMEQi6fnt+A4EBopGXaOkOorU0LWd3LUznDd+7tQEXWql/Z?= =?us-ascii?Q?XYCeLp9l/l82vIZfBx/Ohsb8ICVLuiMGNpH7Qb6mJdGZswWfJM0SGwKfCWql?= =?us-ascii?Q?5GLNp2ldUX6gsNNAyJmAKCJxLpxwDRb2+on1R93DGusUnjvQ1K0k4U9fQr6t?= =?us-ascii?Q?32d4i42jj5SjDbVX2rjLEnu5WM9xrusHGiEJdqBnV7JExNReKHT37tt3OK6/?= =?us-ascii?Q?qg4tZ5fsgxCTF2fDZAw2ZlwOZZYlf6dwTeOYkLlXU9CIQ8Dep+QbXr2C0GBV?= =?us-ascii?Q?Pj/8YU4ew6DTZUQpIKE8r81FuXn1hfsa?= Content-Type: multipart/alternative; boundary="_000_0187D38280FD432CB0D5B0F9D8783419hotmailcom_" Precedence: list list-help: list-unsubscribe: list-post: List-Id: x-ms-reactions: disallow MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-9412-4-msonline-outlook-ecede.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SVAP279MB0383.NORP279.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 2c816d5c-730c-47a6-baba-08deabab6ab1 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 May 2026 20:09:45.0880 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SV0P279MB0680 From: bobwei9@hotmail.com (Bob Weinand) --_000_0187D38280FD432CB0D5B0F9D8783419hotmailcom_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Volker and I drafted a RFC: https://wiki.php.net/rfc/scope-functions Please consider it and share your feedback. I hope it will alleviate pain around some of the most common forms of Closu= re usage which is "execute this now as part of the called function", which = currently can require a lot of "use ($variables)". For me the primary use case of use ($capturing) was always "I need this fun= ction later and want to explicitly document what escapes my function". This= , however, required this straightforward usage of Closures to also document= every single usage of a variable. Which is really not that beneficial at a= ll. Thus the scope functions as proposed will be able to fill that gap in futur= e. Thank you, Bob --_000_0187D38280FD432CB0D5B0F9D8783419hotmailcom_ Content-Type: text/html; charset="us-ascii" Content-ID: <0B92E936CDC98242AF456E3ADB0858E7@NORP279.PROD.OUTLOOK.COM> Content-Transfer-Encoding: quoted-printable
Volker and I drafted a RFC: 

https://wiki.php.net/r= fc/scope-functions

Please consider it and share your feedback.

I hope it will alleviate pain around some of the most common forms of = Closure usage which is "execute this now as part of the called functio= n", which currently can require a lot of "use ($variables)".=

For me the primary use case of use ($capturing) was always "I nee= d this function later and want to explicitly document what escapes my funct= ion". This, however, required this straightforward usage of Closures t= o also document every single usage of a variable. Which is really not that beneficial at all.

Thus the scope functions as proposed will be able to fill that gap in = future. 

Thank you,
Bob
--_000_0187D38280FD432CB0D5B0F9D8783419hotmailcom_--