Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:116482 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 26104 invoked from network); 22 Nov 2021 21:07:41 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 22 Nov 2021 21:07:41 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 8D58F1804B0 for ; Mon, 22 Nov 2021 14:04:10 -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=-1.2 required=5.0 tests=BAYES_00,BODY_8BITS, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,HTML_MESSAGE,NICE_REPLY_A, RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE, SPF_PASS 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.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Mon, 22 Nov 2021 14:04:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1637618648; bh=FthDr6+1AudhI9iisjHQ85hJxfmSBIZo9YeJeNzA/+8=; h=X-UI-Sender-Class:Date:Subject:To:Cc:References:From:In-Reply-To; b=ZIk6LjFEr7r+KcBLKb3jxPr4D4rVnzJJqebyVhWu1WBj3VdVXBm5b2UfB8p7dFTxz Yn5ZxGJKHzu0M8woKy4uozkIZWep9OAyXfVhYBrSVMVK+sLTq1ZIohwtgSc5+fbzh2 G0kaJCJlIiGVbfmAl96nBsuWqZWMmiCZCHxo5bjw= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.1.68] ([77.10.52.206]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Mel3n-1mFOhW44VJ-00aoK8; Mon, 22 Nov 2021 23:04:08 +0100 Content-Type: multipart/alternative; boundary="------------aRkXmciMARqHR0ky3nJKKtc0" Message-ID: <5dda3cf0-2611-e7aa-43a0-7fcd971606d3@gmx.de> Date: Mon, 22 Nov 2021 23:04:07 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.3.0 Content-Language: de-DE To: Nikita Popov Cc: internals@lists.php.net References: <99cc5fab-42ff-f865-cdfc-8942557c86b8@gmx.de> In-Reply-To: X-Provags-ID: V03:K1:MQy/gIOjd/2CCsYsweo3WmUJP4pi36MAtvaCVo6ApowRfAgKka1 bwesHI9K1FZHdkKb0FwFbqsdnNSVgvOZ89JOFMDP1myXFJtA0NjWm4lA5KgeiJSugSB9nKa D5mgI7ofoix82qxyOk5qtVvbqSSwNZzasFycGTv0vgaMoTwyhul9H5aZXXnDZTlhw5UWH/4 Jb7PO4WzVIJwka5k0dudQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:9ypIlUxdTvE=:N9bLdGvc2hS1zGaQ6Q1P6Y RLdTY8teGF4REkLDBFazIzp79vcSXGO6G8+8sythXJML+kpw+szVZ7k2fPVeYNc0SAgHKY4YD EqVvrLn5wHZIyscWv177KqFGIx7JzJ1j4kM0lgxGNhD4+KrPp1cYkM7E3GmSSKeLfVkgjRC98 3Vap6fogW3KSmkPWejuTiEz2Lhm3/w+aTYrnvWmyuQdtfQztnt541GpPCwXj43O/AfKo8NXVb CI1SgdQ0hkr7fS9qHxDnbziEpE0mwhszfr2egp8xNVRgNE6/WbjkePDB0p0y6ca2Wk01kyR97 kQPeaK/LKOC+qgPFCF5x5+ZBXM0U5k9i2DyTjjOWkkc1jcolUn+ZSmTMEHAhvDm5pAWHGYkXk taeDhGYMwQ2YM9FJJotJWTuB68o3phmKr8nue93ALYimSIU5ngGChQmJtgDNVjkza54uzDozu mz5SgfqV7nVHrD13PnczWm34MPLGpcO3JMP6M7dBgNZ5XQSvy69fuihSZGlZ3z1l/03Asj4c9 gtSD0Z/dt4CxxviOS0PwJ+nd5wdAqX++t/Y2t0nWuuJ2NxewguLs8FOCOoGgk7icuqcv4X0bl G1P/qC5mgPT70YqfMcL2rXbxQRfBp/LlaTNe0Tw1Q5MUf4slaiBu5yEshE84+xxa/YDA4qNya 5NtD7F2gN2DLxwK0scyFvEGbCKG+0JMqnFfw/CjeYqHogsh2Ys1nMRYMu4mqnyrLM30ynA6wZ m8xSmo+HE+ROSFOoW3eCxi2TdDrNarEFlxipVDIUDvY09TPbteFygSImKgM4tBJ0SQdAmB6lS epeoaZ+ZSHkxSc/VV9Inzgt8D/8tr9wpXr4SgavVnoKS62WbdCzimIRtTaCxVlzX7fyiTVvog Pj5I37dZ2vn8YtH1v6fjZvrkxnJydrGJEEUNdTbEWvdiWSPhYd0byNkIjKdwSgN4efBRMa0iB HBn57YHEN5cD1fj8u12lxMnishTIkjEiY2mK06vSHBiPNyi46ExFI4z0TUKV24wVHIvAyOSX1 KZWnkjb+xyU6LGAqKr67Bub0UFAY7MHCGGHOA51jDc5u4KAwa/QM+qbhhs3gujm6Xl+XTxfo1 74uB3XKT+xUi6s= Subject: Re: [PHP-DEV] PHP 8.2 proposal: "match", allow "default" as conditional_expression, e.g. 'en_US', 'en_GB', default => loadDefaults() From: syntheme@gmx.de (Andreas) --------------aRkXmciMARqHR0ky3nJKKtc0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable On 22.11.21 22:06, Nikita Popov wrote: > On Mon, Nov 22, 2021 at 7:18 PM Andreas wrote: > > Hi internals, > > This is a proposal to allow to append the `default` pattern by > comma to > the end of the last match branch. (Like a conditional_expression) > > This allows to re-use the return_expression if required and avoids > code > duplication. > > PROPOSAL: PHP 8.2 > > return match ($locale) { > =C2=A0=C2=A0=C2=A0=C2=A0 'de_DE', 'de_CH', 'de_AT' =3D> loadGermanLa= nguageSettings(), > =C2=A0=C2=A0=C2=A0=C2=A0 'en_US', 'en_GB', default =3D> loadDefaultL= anguageSettings(), > }; > ?> > > > Isn't this equivalent to just this? > > return match ($locale) { > =C2=A0=C2=A0=C2=A0=C2=A0 'de_DE', 'de_CH', 'de_AT' =3D> loadGermanLangua= geSettings(), > =C2=A0=C2=A0=C2=A0=C2=A0 default =3D> loadDefaultLanguageSettings(), > }; > > 'en_US' and 'en_GB' will already go to the default branch if they're > not listed explicitly. > > Regards, > Nikita Hi Nikita, nice to meet you. Yes, that's indeed possible. But I personally like to list all handled conditional_expressions (here the $locales) in the match in order to directly see in the code for later reference, which of them are explicit handled (and which are handled by the default pattern). This proposal is mainly syntactic sugar to avoid code duplication, in this case the duplicate return_expression loadDefaultLanguageSettings(). Just as a side note: PHPStorm's inspection suggests "Merge with default arm" every time because of this code duplication. Regards, Andreas --------------aRkXmciMARqHR0ky3nJKKtc0--