Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:117367 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 17898 invoked from network); 18 Mar 2022 03:24:04 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 18 Mar 2022 03:24:04 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id CE97E180382 for ; Thu, 17 Mar 2022 21:49: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=-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_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS8075 40.80.0.0/12 X-Spam-Virus: No X-Envelope-From: Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam08olkn2094.outbound.protection.outlook.com [40.92.46.94]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Thu, 17 Mar 2022 21:49:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gcDmElcHNU49Y7s/Xyk/mNtQKycKSI3o0zPwu3rNg4ZwAEWiEbzGNWKY5pC+/u901iiYRzI06J3R3Ypc2hDFdFhjCuCVsJz7vhRJruMiT9WSEvqA+fSJrYcRYQRRmd+gy2nU2rXaVhTYCaAPral3tkBjfAdQmogWi9vWalAvfeQxR5dE8SmOaR2GGLJMJQ5DEO8unvuE2MfZnN0c+8rDFnnHLTgDA1oXwxSeDvCcnQwoCEE0kWkzfb/u7DWD3pqhramkRoRYr275ni0SRien/MO6j9J6soLuJpLtSqi9AdN6Ff7QD1WdS/L2RorwkpWsn4R+hrjtWDPafJITPNgX8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=KntqOMIrO68+cmGHWs825MwCgwnkSpCSvjT/hpKEhGI=; b=fnhLfgUA7f5JSK8lLmyFY0uXp6xLN5HpYgWfWWSVrGRWZT+wyJ9hfyWsoAoSyiCdb86yyai+dj+pSOiDQNkv4664tMrM/QrXSpe1ncdduwP5lWbPxMS1vUnxtAbFP4bXsj/iexplEamwrsOJ9KRrRZ8oOcqQHNreaddbRAvZTiLLaGt38hP92atd63VP+3at/YERjFdoIlzoBKIq9IyH1elvDzwfwxDKk4Z5ywSG3rn6+tBwFq9PbL7V8N5EMxX4WKoMrlCX/24Ogn/fcE/U6DA9R2uPeqO6bhl/ITy8GHR2C588leW3OHMN5ai8X98V0b8jiQW5rb88WQvyldhrXQ== 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=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KntqOMIrO68+cmGHWs825MwCgwnkSpCSvjT/hpKEhGI=; b=C5MDScMWnb85uEY9bK0Ef0BKxOQVrYKmr+iFEuwcLjA8A3K+3ww8dguJuS/drg5cNYQ4qrMJ+JfnuD7WkzVLVnzEihbK4F+0HfYVJSjIQ55NgC0Qs/vPoUUAoO/voVLkzm8v591qnBu8kKTrIOYEJiG3J+fMhbFcAS42inlrOsAZbNkWIwQwmMKMCLt9Xd77BqtaxipL90ebALT0cY7pk8YDFFIMIwdr97EVLWjxIpmmshe4UW2JCwNXcBwJqAGjRKCIbQ0x8is/sTxIJWoWPjq9PL4zYtImhF38J/evc/RTvhRgilbIH87HCjFgHGZ8itPPzF079pz336RWcfm4mQ== Received: from BN7PR05MB4033.namprd05.prod.outlook.com (2603:10b6:406:90::33) by CO6PR05MB7809.namprd05.prod.outlook.com (2603:10b6:5:353::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.8; Fri, 18 Mar 2022 04:49:21 +0000 Received: from BN7PR05MB4033.namprd05.prod.outlook.com ([fe80::719c:1d3d:7526:8c0b]) by BN7PR05MB4033.namprd05.prod.outlook.com ([fe80::719c:1d3d:7526:8c0b%3]) with mapi id 15.20.5102.008; Fri, 18 Mar 2022 04:49:21 +0000 To: Tobias Nyholm CC: Ilija Tovilo , PHP internals Thread-Topic: [PHP-DEV] [RFC][Under discussion] Arbitrary string interpolation Thread-Index: AQHYOk46FZqw3Y/GY0OeXkSTCtgacqzEKLiAgAACnQCAAFwBrg== Date: Fri, 18 Mar 2022 04:49:21 +0000 Message-ID: References: <4AC60E84-B2AD-43F4-9B72-92604FC7BD41@gmail.com> In-Reply-To: <4AC60E84-B2AD-43F4-9B72-92604FC7BD41@gmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: suggested_attachment_session_id: 8457773c-385f-ce0b-46bb-39993069cf97 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [kUhmU2RFV5L7Hg9cu5GvbPfbAL3ygL7cEEPyQUcOKtc=] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0aaf4026-c3ca-403e-3929-08da089aaaf7 x-ms-traffictypediagnostic: CO6PR05MB7809:EE_ x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 05zkhXvZq3jZN/BpaAiTBJMsU4GpquCevP5fT7G2xj13rFtF5ZHIrVNt6NeXqbHQ5g7uxM20v//NLT8uo6O/u1coVsfqIQtaAmB8m2AP8mZw+AqpIEqnePzn5tpKnzBSLZqDEwBUwy9BBrgeWSfC+YZ4jUJKjAPVyPoPonbxB8BNf4OMtMBw9rgvQqsVqA1b4alEm+DNX8JeX9ec7MBz3Ifmdph/MFR/wmffpcMQq9cg+K5CvTq8CXf91Iq2gmooh1onF0NBBp9TnLbvrWz79IWxFGE7Xucu90y6YAg1obkR7+20rlY41L+H21F2y3JzQWogsP0Orfb+juQ1cuFp7f4yNk3B+Ni5WCbtdcTW9HN0mX0wDqq6h7BSywV7evXD4d9iBlVOvWKbEgjKnBXtRy8j7XP7voJRtzUOkVP0VWjZS2QphmdNR2Wmtq9Ge/HI7mbca2JiUTTl6muf53xwHfEZOZIkcPiouvsgwa/bs9W9Nyt+BB3UtS/rcDa8cjj3OFNaoYs5V6J2KHiN+CTqeAdAYHl00hp/AMnL85dZ5QzdTPvU69F+pWjVxUtGjPk0PhgpRA6R73tapzpTO5J2hSrobv0VHetSbL7/b1clDCyKFkiXTUkCee+/ZO+RH7/A x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?Windows-1252?Q?W+HWr5bw44Ruc44yflW0krE8eBCRpz8s8pRvRzCktqjwPj+ZgLq5ycmC?= =?Windows-1252?Q?yQiGjm7oMG+QberuYlM8lpc/2sHGIgsGb94+fR9QOiwxgtHNYXgmQSjs?= =?Windows-1252?Q?bzjwuKW9wWg1D5KFqEHR2wp6KkiGBj5ilgiX8G2Q1dxRdSlArYeCe3+F?= =?Windows-1252?Q?WMQvyrzxuna3AiR+XQdZ1kM1fb8/SfBO8cEnwpx2SjXvPTkZDw0IqZGu?= =?Windows-1252?Q?eHYOB8ablrR+ie1qCzbCPYi+azT05Eure41zWAt+l5msXVQ54daQ7Ggh?= =?Windows-1252?Q?vlzEB9MbJF2gf0PHyKOBuOSYZZEBapajLbauIfuXwJvg6bDhjkRsjxwD?= =?Windows-1252?Q?ykVYmtNRi47/MHRqIcSbVrsqGhjEq9OEOtUPDckmWqLGiYbM4DaYc4c8?= =?Windows-1252?Q?82IlDYd0v7rtPxqncJlr07u8tRTzrtru55SG1MUlABNaMVxah7HU7Fib?= =?Windows-1252?Q?Bou49VrmH1oXIecNy1dk577jLyZoGPhwUV/TV8MakJCNASgP2CPoSinl?= =?Windows-1252?Q?rTWX3KBCAPG89nXt87CwR3YFkDWXQQ2AhfbC1xEisSPwGCwDvur32dDM?= =?Windows-1252?Q?pvJkrSZAJz3sfpXvUTlRi0LkIP+5y2bFhPz8RtGoqfP5H1p0Yh8SSx/L?= =?Windows-1252?Q?25aHufVWSWZEXPOLuB/UzbUl2qvd/ZvYQ11Ers37uAeZyAdoTjuOIPkk?= =?Windows-1252?Q?6KGUIYPXZ9y/ssXv9dxohfKXIKm3x1fQzeO9jGUJEg71gDw2npF7tc5H?= =?Windows-1252?Q?vIwJRj4eRW2fdCHUFSk4WzEmVkHn5H/q2VTVzYN79fq0bbGH0rEGGwWG?= =?Windows-1252?Q?hrWnPCgNzq5NuPYfuxXb2XavS9j19JKAkuOlZQyTtZy1sAUe4XVGeqqY?= =?Windows-1252?Q?zsnUCK7O6ZD2fhlS+zN+DegtEn0VnKMpssbYU/bOLBEFkKP6ng4fAV2I?= =?Windows-1252?Q?q4N2nZfVRNN+uEada0JHWoNoadatUGe5wZ9LpdIxIKiQiAizURvTzaMq?= =?Windows-1252?Q?9kpaIFGHpfxdX7J1vYU6+rtjDHSGRx2u+1nZUSC6UvmJ1UMrwdo4HOX2?= =?Windows-1252?Q?dPYeT5f+M2dAZCgyg12PMyk1PIilS3TOTTlt0GMDMGDQEZNQASlUqAW1?= =?Windows-1252?Q?lre+dQLRVWXJeU0e+Kupdgt2S/XLq7chtOUf1zJsGOVXAp8AvcW8xjT6?= =?Windows-1252?Q?rj3EmtpD1AW+jk2je7LBc7V0tzAfJz96fYQ9U86HWd107NJSydPYLA?= =?Windows-1252?Q?=3D=3D?= Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN7PR05MB4033.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 0aaf4026-c3ca-403e-3929-08da089aaaf7 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Mar 2022 04:49:21.0629 (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: CO6PR05MB7809 Subject: Re: [PHP-DEV] [RFC][Under discussion] Arbitrary string interpolation From: theodorejb@outlook.com (Theodore Brown) On Thu, Mar 17, 2022 at 5:40 PM Tobias Nyholm wro= te:=0A= =0A= > On Thu, 17 Mar 2022, 23:27 Ilija Tovilo, wrote:= =0A= >=0A= >> Hi everyone=0A= >>=0A= >> I'd like to start discussion on a new RFC for arbitrary string=0A= >> interpolation.=0A= >> https://wiki.php.net/rfc/arbitrary_string_interpolation=0A= >>=0A= >> Let me know what you think.=0A= >=0A= > That is a cool idea.=0A= > But I am not a big fan of having code in strings.=0A= > Wouldn=92t this open the door to all kinds of new attacks?=0A= =0A= Do you have an example of a new kind of attack this would allow?=0A= The proposal doesn't enable interpolation of strings coming from=0A= a database or user input - it only applies to string literals=0A= directly in PHP code.=0A= =0A= Personally I'm really looking forward to having this functionality.=0A= Just a couple days ago I wanted to call a function in an interpolated=0A= string, and it was really annoying to have to wrap the function in a=0A= closure in order to use it.=0A= =0A= If this RFC is accepted I'd be able to replace code like this:=0A= =0A= $name =3D "Theodore Brown";=0A= $strlen =3D fn(string $string): int =3D> strlen($string);=0A= echo "{$name} has a length of {$strlen($name)}.";=0A= =0A= with=0A= =0A= $name =3D "Theodore Brown";=0A= echo "{$name} has a length of {$:strlen($name)}.";=0A= =0A= =0A= Sincerely,=0A= =0A= Theodore=