Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:127555 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 B9DB01A00BC for ; Tue, 3 Jun 2025 13:59:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1748959020; bh=iFpgiQHB/d0UeWeDNbePP2drhrPYuB44sjHQ4gYiCIk=; h=From:To:Subject:Date:References:In-Reply-To:From; b=JSjJVskmyCie+M89UXnAsuMLdvcV8LCmVoulPplT6pVylVy4cXoUz/YxQKDvk6z3G IqpNwc9nkMPkcL6lKJ+9FkmYMeVrkR6Kgdf5x3KwPTfRDoxOTPdsCs+hophW6158yr EiHbpRAKMD2TcHBXNkTKbMQ4NgA0wLikcJV96tNuaOGATL9dltGkIL26E7LgXsBowH 2lOtRhMcFBqEoJq+r1kHiUOwisgNjwpkSs/882FMyWkvWUXXBAgmd4JcNZTen4Zg4Q ePYrFLG5lmVJwAdpGrckgilo75yeQUGAEzVDs/oldwFVmWg3yfpgufNwyjEn0n+Vzk uEmLNJkuiGuxg== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 9A8A1180051 for ; Tue, 3 Jun 2025 13:56:59 +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=-3.2 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS, FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS, SPF_PASS autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: Error (Cannot connect to unix socket '/var/run/clamav/clamd.ctl': connect: Connection refused) X-Envelope-From: Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12olkn2086.outbound.protection.outlook.com [40.92.21.86]) (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 ; Tue, 3 Jun 2025 13:56:59 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hPVYPsoEHrgolqCouv3aFOA7lIVjb3EeCS5MUkAbzIoDYXUAWb6XX0X1m5cEd1PYTK+4UtTHYpYn0qXrFVOlos/sCmyNqJjixA3HlM3yzxYd6ExkbjQDEXqTsjkdxR9HT8rLy8dPMbwitmB0T5lpKC/Z3F/DKfZscdfFiGPn2MDfVL40lvidiQtlibjdn1o9y3/uLzOErO+pkRy1Ggqbj2+WQJE1eqb8MuzFVv0NzqdZov3BvSbdDOsmKmSA03SsRYNZws8pe3oi4kGqisscXb/+MeGzkAjsUYBiF3d2JlXXtPsNv+TZke+UWnApy+AkRNEzL4HkQ1BY9GwxnPgqsA== 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=i6OnkZw4vQcXiFQVD5cH24ZCJRO9FKzk3WKccPgQhJs=; b=IEMPhDtePb3jKBuByssmrN2gcABeGKSZIV7yONAS3kvL2CWbDgdd1Jh7GwAx3vZzl6rU9BuzqgXJgs9qVVnSbfGr90LYgbAl+xbCKMToJb4Q9IWOalG0S10ZI6IogLHI56SXOf3GP5LJ4eV4wHf1hvbjUWPd7CsEMa69Koak8zVdLcw9lbTeUd0RMMqH1y9X2Kt1zjEPsSxxo8YulcUM8YljEUL29aeHUAggNVbX29joQvBt9UPx3txF0UBj9mGZ1OL6iA6s8I2S7ej7ftC76jyIVsuWMI7wkWu5pEDmF1UwsG8YtJBOnhf3uvmsYWUGNUN6n/Hy9TkvbAXRd6nSSg== 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=i6OnkZw4vQcXiFQVD5cH24ZCJRO9FKzk3WKccPgQhJs=; b=XKnjNqe7MKSaYzI04LenH6QU7UkJRrVIv/u0aqDLMYwkoEzK0o9MdK1v0tiZcHWmW4gN8lz17E+N6DoRSBbvvInZItRdXOIu5xe37hggeqL0Dye6V0pUQkUZz/uXSIfaRurtyuo4M3U1SB5zDwgaCIHQzIzvwZcjFi2nmFFDKkNxZc8LsdiUMnIpodUn8lqHKYnj/NX3aF+EUSCq9/O3PQxYH7un1BYOkgBOpwgt6HkZIE81kQLLqOks4uqWu2Be3clza2190wd1ykBt2A20LBltgY6fVyl82RU+em98t05xkuL0BIY2xXELqJ5CAzN3/x0uOQGRES+89uQ/Fy6EIg== Received: from BL4P223MB1364.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:5a9::14) by BL3P223MB0228.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:34f::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Tue, 3 Jun 2025 13:59:00 +0000 Received: from BL4P223MB1364.NAMP223.PROD.OUTLOOK.COM ([fe80::2e7b:7134:b7fe:e849]) by BL4P223MB1364.NAMP223.PROD.OUTLOOK.COM ([fe80::2e7b:7134:b7fe:e849%6]) with mapi id 15.20.8769.033; Tue, 3 Jun 2025 13:59:00 +0000 To: "Christoph M. Becker" , "Gina P. Banyard" , PHP internals Subject: Re: [PHP-DEV][RFC] Deprecate type juggling to and from bool type within the function type juggling context Thread-Topic: [PHP-DEV][RFC] Deprecate type juggling to and from bool type within the function type juggling context Thread-Index: AQHb09j7oi/4oobw+kS16eAa3SIdZbPxPR+AgAAwdE8= Date: Tue, 3 Jun 2025 13:59:00 +0000 Message-ID: References: <3Yl0UGauXmKqk7s7Hqbv6iaXru-hZHf8Wj6VjwwihgRSaqZo5EZ2ndsOle-ae41C-lvnirynWt6PpuD7UJPL0zPCw18QHFE81Eb--fiiEbc=@gpb.moe> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BL4P223MB1364:EE_|BL3P223MB0228:EE_ x-ms-office365-filtering-correlation-id: 69cb887d-d20f-4517-3773-08dda2a6ca67 x-ms-exchange-slblob-mailprops: obhAqMD0nT/Bd/aqUJxpbZdvuc0mVWDOAh4e0frUU4LMudfiAe6Txszi7wtH6q/CER4+ak2yVh9NFW1bH5FRFAF74AyKdzRhvaGbDACcbG6X/O6sdBPXhun2B/VQY1NxRbV59NlyoL3QhdxQElwoEMyUAxgohkvX8vSIUEmeZhhEIZkb916ANPBRrsFt8PblThh1t7rMVaJ6zBtnuYD1dmSI22bhFttntF0UjuxXdO3DD/28kG07CBkptED9T8z7lOIJXcPUrBydIFZ/fKBtyj9H9fBs/5Yc+e1O7R9q3oM0CqIHkGQmnmDUpIm42usztL9t2tRNYJDDJ5mWxlw4ZusLV+6jIN7Tl71cSyT9z9K38QMzlURgwsDw1SKneKFHwQgUbnG++5l9eUnfMDE2eAUT6LzEo9mqJJ6eho0f5wZ/4UmTo81ztg0ZiNthEqIrbCdIIBLp0nMD8bQLAynWXS/ibHlLOR6rbQhuoKw9elCcT1XrLynJKBOAQdRuiJUZr52ZOLSdOXRaHC7x+AGcnqcuPZEUQ5hhyb1DfnoPBWIKv0QtgEpitJP1/G5irBLE0qENk7hHqxiA9VNpQlSkZqwhzwSAyQ9lIizssk2+NXWcXE3U930raWb7yq17odXsxkhjqXPFt0rgqSdSmR1hGoCSTzzlHB7hBvCFT69Dv9Y+qBrZfKgRPOjLc/ejVpUiTWwRi1ijN//p3Vd5q6FqN+dF9jsGnxR089HHujJGVjnA/A3c3o9PRtMenfJg2376C/OvDuDW6SU81By8VNb2kYWeWAEARv8sMxq5+1g1UWNnjQ/F4QNhrlO9O4/MIKD5 x-microsoft-antispam: BCL:0;ARA:14566002|461199028|15030799003|19110799006|8062599006|8060799009|15080799009|7092599006|102099032|1602099012|4302099013|440099028|3412199025|10035399007; x-microsoft-antispam-message-info: =?iso-8859-1?Q?ucmJ197Vh+EK1NbLKRyw7POHaErfCLHl0HGV9OPsPhumcgXhSQ8VaVjBfO?= =?iso-8859-1?Q?nUGEKA7HEJLl/3BVMcHslqYKiqHQ0QAXH81Q62jyqG6eqxEWNjCVEL42cr?= =?iso-8859-1?Q?f1+zNENBn6JRKZWt/fdVcz6/OdEeQBeZmzHDrJvInbXwOlPyZxyo2uiCDg?= =?iso-8859-1?Q?7x/v4+ZYRMmm8ORksNZ/MMhxykrzWzTxvKrzfHid6OPPshCp2vIaSxUye4?= =?iso-8859-1?Q?sV4zDo6kJV2qxCbdkVHS4bZCb56ZoFw7OGA943OnqxUJrLMxUoFX28X6zu?= =?iso-8859-1?Q?Tm7AqinvyC32hVLI7ivaUmeClHceGf4o553AKzL9x7Q7NFgwJ4OEAVfrPe?= =?iso-8859-1?Q?lvFegf2Alquxf5A/swQoz+a/N1VrXOvEgbJbQBL86HynuohCzoco3rBoFw?= =?iso-8859-1?Q?V6plWvA6FmsHfBHX0qzGawDKF9lbkT6zhg+jITwXMV8ebla7npfrOR+Pzh?= =?iso-8859-1?Q?4ANnNT48v6SftlRtQ7HoioUX7smld3/xjE0yWg2Sl/VzpcD+GjULlreWb4?= =?iso-8859-1?Q?ESHr7AJ5DguxcHk3Lb7nNlcG3w9g4eJymYM6wHTaPp/bWn6zrU8GQfsTEG?= =?iso-8859-1?Q?i/DuzSJd6E4JSwcXYkSrDg2tJjUPdYFSPz7VGy8V2KSBLRyJQJaPbbYZfp?= =?iso-8859-1?Q?6CK1qMhpPg6iNelOdzgb3sICpkWTfmN2xQ7MbOR365U6CFZGK3R3R07DQH?= =?iso-8859-1?Q?Bx6Q4fIGXCkcgJ/JtGQMRR82c8b7Gqp4/HULytNdkJQCuTyxoxj0EoKtE6?= =?iso-8859-1?Q?1Mp+76LmCfq4CnreyADFWmbXIYyd5Ldl4jZ1i0rjDKLCjKAgwqUCC/NODI?= =?iso-8859-1?Q?oJ0jfpxPgafTD/FgTCz5rPbTYHmIjl9upn/nySCnZbaaETL1WRU8+yP9ba?= =?iso-8859-1?Q?B+G4WboLAG0zF5WX+fN19IFEMVUTom6mryP7lWvX97KKdtXtX0eX2FpN56?= =?iso-8859-1?Q?miYwsn8IT9lw1TuGw+FISlUrMZoAVq6KOElJjAUgS7mbeYMOhDXXAcgiZ2?= =?iso-8859-1?Q?arBZxvUFnOd67s6CvDkn1eQBD6tAHIHwMHpP5dWWepR+NDwwkHbmSO6GW/?= =?iso-8859-1?Q?7d8Z0kFm3oy3t/5t/7UlT8LAIJybiRzqsZn8HrRRywUBB8CEWvOLUw+dSe?= =?iso-8859-1?Q?tuhHk7ZI7wzDjno9ndGNZN1Z7FqEyu4aEHThPk3zYP1avgA29JQvJ3mge+?= =?iso-8859-1?Q?J5rdBb1hGUMeEYP6hgMkgNB1ZoEjIPgVRAdVhZPBzh2pntRk88m1qTNdnG?= =?iso-8859-1?Q?qLimftVQZGTtLAbZ6P9HXgfGEQASR5GAKHkePbzo/R8HL5g1/QCVUCcvlZ?= =?iso-8859-1?Q?HT4E?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?et49WHGrVEPvJTUMYhniAeUEBojV5p31nDM3PhaSVkwyRXURt64IJm2AY6?= =?iso-8859-1?Q?LSQ3OOJyHR8Ak4oD9kD2z3Ick4C/DcOC6k/truDNx8XGSqFyUZGjs2Q8hm?= =?iso-8859-1?Q?0dNU2P4h+fAFTZHU08/cJy0U1FZu+SIzeQO1biPJEslWlysMFjNSwBRwy/?= =?iso-8859-1?Q?YdMAMYUNWaq1MPRudIq9V59wUAoOweZNIrWVCviJhUhr06V0TELjZ7/icZ?= =?iso-8859-1?Q?kjhsho3DtjE/vlt1r2JanYH+DOp2djNYdiVkcVak0f2H3L7S6T4tWyj2X7?= =?iso-8859-1?Q?YRaRuF6et8KXwn+N8jvuKc3ZUHNmentVa36ctsNdX8Y0yiMzH5J7bVFaDL?= =?iso-8859-1?Q?C7Km+zVUUJMdHyxJuCntWhaiLhl+F1tIcC5g0C4wfgJJZTY9nDAgKp3vb4?= =?iso-8859-1?Q?2SMExVB3XuiNXlTbuqSLRiVJtk2D03/9JwYNBJHoAVEDfDeiunnrd/AZDT?= =?iso-8859-1?Q?kav1p7zo/lLfQgAS3AHL+Kw+/BcbAYAnf/8RTv9iinw0dpVEdOGyhv//tr?= =?iso-8859-1?Q?PAD4/556kOQDfGEUtcYoBgKhvkFlYIZrGhDBOtCykv8wClutmFLunkygFg?= =?iso-8859-1?Q?nM3kWfWmc1rALRe+9xeK94E0pfEaC61ZeCVvmjXQgMm2wpuxgM6hWQ8sSv?= =?iso-8859-1?Q?+ImWPJ8Dq9PVBI06geOammeViEpB7+dU7XFNa+qXPjiiWiQ9538WlSGUWT?= =?iso-8859-1?Q?egIPJDJnJHcR/2KAIHnpK+9xVNbCDvcn9XqiAc3VPzyeCtnlRUwWESYUe0?= =?iso-8859-1?Q?uVt2ULqFdS1xjOtE+2nOwS90BkOQF4ly8Kn2LJ12oSpBQe356Fku397BQZ?= =?iso-8859-1?Q?vLja84xjyMMg8Vq0Gt+woTDKiB3y+EYj5VFhEs59bJfQT5YuFselQDIRqZ?= =?iso-8859-1?Q?FfDkcba4iQ118xPCjHniZi4w+SmHYHr9id7l1lP8hsmiFaT2AUSmFqcUvr?= =?iso-8859-1?Q?Gft4XF6Dg7dDzC5v+oD6eNd1GMIjoAWepWm+zEso55XjntB3hbHH4577zy?= =?iso-8859-1?Q?Uq6WH8IiJDguRBJuW3FsYPpuNt2pR3dIhIlO1RioJnBzgWvlPsK3t8cVd9?= =?iso-8859-1?Q?rLT9gw3BzxF7Uy/e/ESKaoxj60z7Uz/Lj36IXrck0MkrWObgo50svw9jfQ?= =?iso-8859-1?Q?dFI8l0zGSYnSaq5Fblq7x9BnA3fxja4ujTN2wKwUczpbbAPKWgBc585Cgp?= =?iso-8859-1?Q?FCgD9IjTpQX7tujaZwbYyV1RrBBmdYpNOLfWz4nieRevC2pnF05ym8mb+B?= =?iso-8859-1?Q?eBMOBj4uEKZTbVIuY1+osA/D1hAt2vhnNqu9XbYN0=3D?= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL4P223MB1364.NAMP223.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 69cb887d-d20f-4517-3773-08dda2a6ca67 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Jun 2025 13:59:00.0471 (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: BL3P223MB0228 From: theodorejb@outlook.com (Theodore Brown) On Tue, June 3, 2025 at 04:29 Christoph M. Becker wrote:=0A= > On 02.06.2025 at 18:11, G. P. Banyard wrote:=0A= >=0A= >> The RFC proposes to deprecate implicit type coercions to and from the bo= ol type=0A= >> for other scalar types. This a "weak" mode change only, as when strict_t= ypes are=0A= >> enabled none of these coercions can happen.=0A= >>=0A= >> Let me know what you think about it.=0A= >>=0A= >> RFC: https://wiki.php.net/rfc/deprecate-function-bool-type-juggling=0A= >=0A= > Let's consider a legacy (PHP 5) function:=0A= > =0A= > =A0=A0=A0 function foo($bool)=0A= > =A0=A0=A0 {=0A= > =A0=A0=A0=A0=A0=A0=A0 if ($bool) {=0A= > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 // something=0A= > =A0=A0=A0=A0=A0=A0=A0 } else {=0A= > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 // something else=0A= > =A0=A0=A0=A0=A0=A0=A0 }=0A= > =A0=A0=A0 }=0A= >=0A= > Now the developer wants to add the missing parameter type declaration.=0A= > As is, even without static analysis or a test suite, they can just add=0A= > `bool`, being reasonable sure that the code behaves like before for=0A= > scalar types, and only fails for non-scalars, something they may be fine= =0A= > with.=A0 With the suggested change, they can no longer, but would rather= =0A= > have to inspect and possibly "fix" all callers.=0A= =0A= Isn't this already the case? If e.g. someone is passing a nullable string= =0A= to the function, adding a `bool` type would cause this to break, which=0A= necessitates inspecting all the callers of the function to make sure null= =0A= isn't being passed anywhere.=0A= =0A= The proposed RFC doesn't change anything for null, but only deprecates=0A= passing float, string, or int to a `bool` parameter. In my experience,=0A= such usages almost always indicate bugs, and receiving a deprecation=0A= notice would be valuable for fixing them.=0A= =0A= In regards to a unified typing mode, personally I don't see any benefit=0A= from `declare(strict_types=3D1)` anymore, since with static analysis tools= =0A= like Psalm strict typing is enforced before even running the code.=0A= =0A= Regards, =0A= Theodore=