W3docs

max()

La funzione max() in PHP restituisce il valore più alto da un array o da un insieme di valori. Scopri sintassi, tipi e casi limite.

La funzione PHP max() restituisce il valore più alto da un elenco di argomenti o da un singolo array. È uno dei modi più comuni per trovare il massimo senza scrivere un ciclo manualmente. Questo capitolo tratta entrambe le forme di chiamata, come vengono confrontati i valori di tipo diverso, i casi limite che possono trarre in inganno e quando usare max() rispetto ad alternative.

Sintassi

max() accetta due distinte forme di chiamata:

// Form 1: two or more values
max(mixed $value1, mixed $value2, mixed ...$values): mixed

// Form 2: a single array
max(array $value_array): mixed

In entrambe le forme il tipo restituito corrisponde al tipo del valore che "vince" il confronto — se si passano interi si ottiene un intero, se si passano stringhe si ottiene una stringa.

Trovare il Valore Più Alto in un Array

Quando si passa un singolo array, max() restituisce il suo elemento più grande:

php— editable, runs on the server

Funziona anche con gli array associativi. Le chiavi vengono ignorate; vengono confrontati solo i valori, e viene restituito il valore (non la chiave):

<?php
$prices = ["apple" => 1.20, "pear" => 0.95, "mango" => 2.40];

echo max($prices); // 2.4
?>

Confrontare un Insieme di Valori

Se si hanno già variabili separate, è possibile passarle direttamente invece di costruire un array. Questa forma accetta un numero qualsiasi di argomenti:

<?php
echo max(10, 42, 7);        // 42
echo "\n";
echo max(3, 9, 9, 1);       // 9 — ties simply return the value
?>

Questo è utile per limitare un numero a un valore minimo, un pattern frequente nella paginazione e nella gestione dei moduli:

<?php
$requestedPage = -3;

// Never let the page number drop below 1
$page = max(1, $requestedPage);

echo $page; // 1
?>

Come max() Confronta i Valori

max() utilizza le regole di confronto standard di PHP, quindi il risultato dipende dai tipi coinvolti.

  • Numeri vengono confrontati numericamente: max(2, 10) restituisce 10.
  • Stringhe vengono confrontate in ordine alfabetico (e con distinzione tra maiuscole e minuscole — le lettere maiuscole vengono ordinate prima di quelle minuscole): max("apple", "banana", "cherry") restituisce "cherry".
  • Stringa e numero misti: una stringa non numerica viene trattata come maggiore di 0 in PHP 8, quindi max(0, "hello") restituisce "hello". Evitare di mescolare i tipi quando possibile — le regole sono facili da fraintendere.
  • Array vengono confrontati prima per lunghezza, poi elemento per elemento, e un array conta sempre come maggiore di uno scalare.
<?php
// Arrays of equal length: compared element by element
var_dump(max([1, 5], [2, 1]));
// Returns [2, 1] because the first element 2 > 1
?>

Casi Limite e Insidie

  • Array vuoto: max([]) genera un ValueError in PHP 8 (in PHP 7 emetteva un avviso e restituiva false). Verificare che l'input non sia vuoto prima di chiamarla.
  • Un singolo argomento non array non è valido — max(5) genera un errore. Usare max(5, $other) oppure max([5]).
  • Valori NAN rendono il risultato inaffidabile; filtrarli prima.
  • Parità restituisce il primo valore vincente incontrato, quindi il risultato è stabile ma la chiave originale viene persa.

Funzioni Correlate

  • min() — l'immagine speculare, restituisce il valore più basso.
  • sort() — ordina un intero array quando si ha bisogno di tutti gli elementi ordinati, non solo dell'estremo.
  • array_sum() — somma tutti gli elementi.
  • count() — conta gli elementi, utile per proteggere max() dagli array vuoti.

Conclusione

max() è il modo conciso e leggibile per estrarre il valore più alto da un insieme di argomenti o da un array, e funziona anche come clamp pulito (max(1, $n)). Mantenere i valori dello stesso tipo, proteggersi dagli array vuoti in PHP 8 e usare min() quando si ha bisogno dell'altro estremo dell'intervallo.

Esercizio

Pratica
Cosa fa la funzione max() in PHP?
Cosa fa la funzione max() in PHP?
Was this page helpful?