0Pricing
PHP Academy · Lezione

Espressione match e argomenti denominati

Sostituire uno switch prolisso con match e usare argomenti denominati per maggiore chiarezza.

Espressione match e argomenti denominati è una lezione PHP Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento PHP Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso PHP Academy include 4 lezioni in totale.

L'espressione match

PHP 8.0 ha introdotto match, un'alternativa concisa a switch che usa l'uguaglianza stretta (===) e restituisce un valore.

match e switch

Differenze principali: match utilizza un confronto stretto, non prevede il fall-through ed è un'espressione, quindi restituisce un valore.

<?php
$status = 2;
$label = match($status) {
    1 => "active",
    2 => "inactive",
    3 => "banned",
    default => "unknown",
};
echo $label; // "inactive"

Condizioni multiple per ramo

Separi più valori di match con virgole per gestirli con lo stesso risultato.

<?php
$code = 404;
$type = match($code) {
    200, 201, 202 => "success",
    400, 422      => "client error",
    404           => "not found",
    500, 503      => "server error",
    default       => "other",
};
echo $type; // "not found"

match genera un errore se non trova corrispondenze

Se nessun ramo corrisponde e non è presente default, PHP genera un UnhandledMatchError, a differenza di switch, che prosegue in silenzio.

match come espressione

Poiché match restituisce un valore, può usarlo inline: come argomento di una funzione, in un'istruzione return o all'interno dell'interpolazione di una stringa.

<?php
echo "Status: ".match($active) {
    true  => "ON",
    false => "OFF",
};

Argomenti denominati

Gli argomenti denominati di PHP 8.0 consentono di passare gli argomenti a una funzione usando il nome del parametro, in qualsiasi ordine.

<?php
function makeTag(string $tag, string $content, string $class = ""): string {
    return "<$tag class=\"$class\">$content</$tag>";
}
echo makeTag(content: "Hello", tag: "p", class: "lead");

Vantaggi degli argomenti denominati

Gli argomenti denominati migliorano la leggibilità delle funzioni con molti parametri, consentono di omettere i parametri opzionali e chiariscono il significato di ogni valore.

Argomenti denominati con le funzioni integrate

Gli argomenti denominati funzionano anche con le funzioni integrate di PHP.

<?php
$arr = [3, 1, 4, 1, 5];
$result = array_slice(array: $arr, offset: 1, length: 3, preserve_keys: true);

Combinazione di argomenti posizionali e denominati

È possibile combinare argomenti posizionali e denominati, ma quelli denominati devono venire dopo quelli posizionali.

<?php
str_contains(haystack: "Hello World", needle: "World");
// or positional then named:
str_contains("Hello World", needle: "World");

Argomenti denominati in array_map

Gli argomenti denominati sono particolarmente utili con le funzioni integrate variadiche, che hanno un ordine dei parametri poco intuitivo.

match nel codice reale

Sostituisca lunghe catene if/elseif con match per il routing dei metodi HTTP, la mappatura dei codici di stato e le decisioni simili a enum.

<?php
$handler = match($_SERVER["REQUEST_METHOD"]) {
    "GET"    => new GetHandler(),
    "POST"   => new PostHandler(),
    "DELETE" => new DeleteHandler(),
    default  => throw new InvalidArgumentException("Unsupported method"),
};

Riepilogo

match offre un controllo del flusso rigoroso, esaustivo e privo di fall-through. Gli argomenti denominati migliorano la leggibilità delle chiamate. Entrambe sono importanti novità di PHP 8.0.

Verifica rapida

Che cosa accade quando nessun ramo match corrisponde e non è presente default?

Domande Frequenti

La lezione «Espressione match e argomenti denominati» è gratuita?

Sì — il testo completo di «Espressione match e argomenti denominati» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso PHP Academy, passa a CoddyKit PRO. Il corso PHP Academy include 4 lezioni in totale.

Cosa imparerò in «Espressione match e argomenti denominati»?

Sostituire uno switch prolisso con match e usare argomenti denominati per maggiore chiarezza. Eserciti PHP Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare PHP Academy?

Non è richiesta alcuna esperienza precedente. PHP Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Espressione match e argomenti denominati»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione PHP Academy?

Sì. Ogni lezione PHP Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Espressione match e argomenti denominati
  2. Operatore nullsafe e tipi unione
  3. Enumerazioni (enum)
  4. Fibers: concorrenza cooperativa
← Torna a PHP Academy