IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Nahrazení switch pomocí match

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Tereza Rezková:9.11.2022 11:13

Ahoj, pokouším se v kodu nahradit funkci switch pomocí match.

Jedná se o tento kod

if(count($chyby) == 0){
    $vysledek = null;
    switch($operace){
        case '+':
            $vysledek = $prvniHodnota + $druhaHodnota;
            break;

        case '-':
            $vysledek = $prvniHodnota - $druhaHodnota;
            break;

        case '*':
            $vysledek = $prvniHodnota * $druhaHodnota;
            break;

        case '/':
            $vysledek = $prvniHodnota / $druhaHodnota;
            break;
    }

Zkusil jsem: zkoušela jsem toto

  $vysledek = null; }
     $operace = match($operace) {
         $prvniHodnota + $druhaHodnota => '+',

             $prvniHodnota - $druhaHodnota => '-',


             $prvniHodnota * $druhaHodnota  => '*',


             $prvniHodnota  * $druhaHodnota =>  '/'

     };

var_dump ($operace)

Chci docílit: pokouším se v kodu nahradit funkci switch pomocí match.

 
Odpovědět
9.11.2022 11:13
Avatar
kaskader202
Člen
Avatar
kaskader202:18.12.2022 18:11

Jak již jsem psal do druhého vlákna tak ten přepis by měl vypadat takto

<?php
        $operace = '+';
        $prvniHodnota = 1;
        $druhaHodnota = 5;

        $result = match ($operace) {
            '-' => $prvniHodnota - $druhaHodnota,
            '+' => $prvniHodnota + $druhaHodnota,
            '*' => $prvniHodnota * $druhaHodnota,
            '/' => $prvniHodnota / $druhaHodnota,
            default => throw new \LogicException("Neznámá operace: {$operace}")
        };
        echo "Výsledek operace {$operace} mezi čísly {$prvniHodnota} a {$druhaHodnota} je {$result}. Tedy {$prvniHodnota} {$operace} {$druhaHodnota} = {$result}";
 
Nahoru Odpovědět
18.12.2022 18:11
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.