On 22.11.21 22:06, Nikita Popov wrote:
On Mon, Nov 22, 2021 at 7:18 PM Andreas <synth...@gmx.de> 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

    <?php
    return match ($locale) {
         'de_DE', 'de_CH', 'de_AT' => loadGermanLanguageSettings(),
         'en_US', 'en_GB', default => loadDefaultLanguageSettings(),
    };
    ?>


Isn't this equivalent to just this?

<?php
return match ($locale) {
     'de_DE', 'de_CH', 'de_AT' => loadGermanLanguageSettings(),
     default => 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

Reply via email to