Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:108199 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 22322 invoked from network); 20 Jan 2020 00:09:52 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 20 Jan 2020 00:09:52 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 237AC1804DA for ; Sun, 19 Jan 2020 14:18:07 -0800 (PST) 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.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS8075 40.64.0.0/10 X-Spam-Virus: No X-Envelope-From: Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10olkn2026.outbound.protection.outlook.com [40.92.40.26]) (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 ; Sun, 19 Jan 2020 14:18:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BOoKTq6KSYjfjqS4ipJBUBvMSbDvwbh21ahSH1wCyA5xGTDI4ahHDxIUuWEId7Z26uszX0CJtZiFC6NK3jFd5gk87CQtZnk1PSh4nQBKNRxZ0Z8btuDpg3fqA8xdUpuZ2R9SjcGBSPmX/XDLDRpxkdSJaYU7qy8BAeqEcEp80BQU14eN2LwLPf+ZVoTTZNhJqYwq6sTvBM0s93XltQcZ43BjbE1Vxsm5Qh9ePGFKWQw0cYiUcnW/mP97p81DvvumhJF1frgLksa/gVJYeiEYB2MguXX9QvdsEOH1VOleUvIkKxLaiO1Ul1Mz1K/q3WreFNxozRoFV0/0h8Ry46UJiw== 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-SenderADCheck; bh=VqRkXFpzuWLfzVJY9DxmRuj+K5S+gTVnpcqhjrizlIo=; b=d25ylmHqn/RAs3HbIgcqW/uhVn/SO3yfuSX8wNvLNH7AVmOkS7qcaTMcD9cl2eVSNMNtJd4Z3/8LYKpbCaJZBKcsMA3ISTlYD5piCk8/WCMauIdhlb6qEXFtr7Um9sqZaoQ7w0bV2yvEjo54JMnvigLxmSVA3BFldr1/WJQzWIpcIgjzSFHftuLoKXqhIP8/jy7eqei9jIZJTYEuFAtnmZzmLRBEOvXicMkSx+MGRilQmTQCCEzLSqWJaZ5EBRP5glvRxD0gF69qlJi1zCS1UFLpXVDDCYUBPWtORi1JNLnO8XlESVZkXnUTQm2dCjXvKwYBggSqZ40jvJ9pOSpOzA== 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=VqRkXFpzuWLfzVJY9DxmRuj+K5S+gTVnpcqhjrizlIo=; b=ODNJv11Exb3aVzQWvHTrbXt6mNs54UczXuUiMPoUPJk2HLv/bP9OKMfkAc09C85guGLLmI/bM/DB5S9OdyqN28z2r7M3Twv0h6jTSz+IZ+kYiWcP2Bktl8SjOG9tiOXiL4OuJUPlll3nhNb8o0puTC91EKkI1aydA20oI/JpP+SowItE5GcRsFKA8MY5g3j0/T3xI3LO7cZsIN8HzEklMpC5yjHFiEz8xjgOOfiwmDQZbWRzuahASoXB92UE0YYfdJC7BXUZBvJd1AwOS1Fi+QMIiWQNSeuDz4k8RE+1axZbk+HsHZmpl8cm6qMa8JigxI1HBDu6RibOZBri5bwhIA== Received: from BN7NAM10FT057.eop-nam10.prod.protection.outlook.com (10.13.156.56) by BN7NAM10HT068.eop-nam10.prod.protection.outlook.com (10.13.156.76) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2644.19; Sun, 19 Jan 2020 22:18:02 +0000 Received: from BYAPR05MB6535.namprd05.prod.outlook.com (10.13.156.54) by BN7NAM10FT057.mail.protection.outlook.com (10.13.157.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2644.19 via Frontend Transport; Sun, 19 Jan 2020 22:18:02 +0000 Received: from BYAPR05MB6535.namprd05.prod.outlook.com ([fe80::d512:a8c6:f95a:56a8]) by BYAPR05MB6535.namprd05.prod.outlook.com ([fe80::d512:a8c6:f95a:56a8%7]) with mapi id 15.20.2644.023; Sun, 19 Jan 2020 22:18:02 +0000 To: Nikita Popov , Niklas Keller CC: Bob Weinand , PHP internals Thread-Topic: [PHP-DEV] Warn when declaring required parameter after optional one Thread-Index: AQHVxugakk9s3Kic9kCA16aNIpmxbafiVzMAgAASAoCAAw/1gIAJuM8AgANsi54= Date: Sun, 19 Jan 2020 22:18:02 +0000 Message-ID: References: , In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:34F060CA92C999518EC034BB96A24A67CF9B3AAFAC8CA1E60D86D39352F0E4E6;UpperCasedChecksum:0899602042B95FB835E45D1D72E9147A48BA5C2414BDCC5393542117AB4A4128;SizeAsReceived:7402;Count:46 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [3B9rgZoPb1lLlEH63JUsDcbgWJKSSXSh] x-ms-publictraffictype: Email x-incomingheadercount: 46 x-eopattributedmessage: 0 x-ms-office365-filtering-correlation-id: 6502b048-abd0-47c2-df3f-08d79d2d72d7 x-ms-exchange-slblob-mailprops: 79Jo46q8hhDKIVf9D0PnIzRJCNzttO6Pbiqo1tV05wgDV/E2zXXnH30Lhv970Gb7RDrT1q/vUoAtlNztC0xglOl+t3SfiSyQwiyI0hQkWw2V1xL17pkY97zKcnJAVHzq70TU/qsB9q8o3ks7CXC0aXFOmEeglvg5eJ44CwkFYrxAZOjDeNygZWvETbW74y5WEcXATdCQHg5hrXNm6A6gbR9kDMcBtLKf/w8XjEImDgBADvrkXOsgL04Qs2cWa+VUUhKHBBJMdfwHPJvF2BrObf3n8eFE+FvnXgniy6DR38J7ktewEJniSA2NUOc8x5tsBamK9e4X6LpT5rPItHTGfdfNgmtFmaGOq0POmM9SCLxHaM1uFasvGJyvY9lN8/RvsOV53kSCD0umLd0CRMeSIpgyVl0p5k2SZj01GxAP+DLJgKIfCIHapQK9DMSSRa8qJsvOfpuNUpqBD0onz35gSiY4oDsmBNaxybcwbVYNW4MSNegr4u1NlGqe6lRtmOwf0CasnMn8TFn6jXOSV96NSxe8YAwEy423uIPObn7/WZzdRIGp8gBAOCrTYmXpKj5VhZXnw3xh+nGQWR7bzz6sTjUPprcU9FlheOGzVqmOK1jJEPcMFP5Ff5RzJIhRXin1aucOf0cK8eTZdqMqdncVTCmhP8fU27ewrhMqHvTM4ENMl5joBp/GixJINPGN5sPZ x-ms-traffictypediagnostic: BN7NAM10HT068: x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: HTWxSdwr/+DTgmmjaAOS2M+PKxBqgmTZ6vUthqaD0Vbh8owjFSvjNdy1SB9jATj6UM9X6EUgzVZw6FUVmeqenSUrmFfuISdbuFnFPsCOsCcSkVBeThVKOjS5BanaL4A0tVFIStJz9+E8g5OhNshEFWRJVAW56ZNszVJteETQxn2XrNrIYUrZQpeI/cY3JhF8lH/aMg2ZOojHcL2f5L/ASYCVj/SMo3Dkm63BvvyPgAM= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 6502b048-abd0-47c2-df3f-08d79d2d72d7 X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jan 2020 22:18:02.1354 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7NAM10HT068 Subject: Re: [PHP-DEV] Warn when declaring required parameter after optional one From: theodorejb@outlook.com (Theodore Brown) On Fri, Jan 17, 2020 at 11:59 AM Nikita Popov wrote:= =0A= =0A= >> I've created https://github.com/php/php-src/pull/5067 to make code like= =0A= >> function test($foo =3D null, $bar) {}=0A= >> throw a warning=0A= >=0A= > I was interested in seeing how prevalent this pattern, is, so I ran=0A= > some analysis on the top 2k composer packages. I found 527 signatures=0A= > that would throw a deprecation warning with this change. Of these 187=0A= > are potentially used as "poor man's nullable types" (the optional=0A= > argument has both a type and a null default), while the other 340 are=0A= > definite bugs.=0A= =0A= Given that most of these usages are definite bugs, I'm in favor of=0A= deprecating this in PHP 8 and making it a compile error in PHP 9. This=0A= should provide plenty of time for codebases to migrate to the simpler=0A= nullable types syntax for the minority of usages that aren't bugs.=0A= =0A= Theodore=0A=