(PHP 4, PHP 5, PHP 7, PHP 8)
max — Localiza o maior valor
Forma alternativa (não suportada com argumentos nomeados):
Se o primeiro e único parâmetro for um array, max() retorna o maior valor do array. Se no mínimo dois parâmetros forem fornecidos, max() retorna o maior desses valores.
Nota:
Valores de diferentes tipos serão comparados utilizando as regras padrões de comparação. Por exemplo, uma string não numérica será comparada a um int como se fosse
0
, mas várias strings não numéricas serão comparadas alfanumericamente. O valor real retornado terá o tipo do original, sem nenhuma conversão aplicada.
Cuidado ao passar argumentos de tipos diferentes, pois max() pode produzir resultados imprevisíveis.
value
Qualquer valor comparável.
values
Quaisquer valores comparáveis.
value_array
Um array contendo os valores.
max() retorna o parâmetro considerado o "maior" de acordo com as comparações padrões. Se vários valores de tipos diferentes forem considerados iguais (por exemplo, 0
e 'abc'
) então o primeiro fornecido à função será retornado.
Se um array vazio for informado, max() lança um ValueError.
Versão | Descrição |
---|---|
8.0.0 | max() lança um ValueError em caso de erros. Anteriormente, retornava false e emitia um alerta E_WARNING . |
8.0.0 | Como as comparações de strings com números foram alteradas, max() não mais retorna um valor diferente por conta da ordem dos argumentos informados. |
Exemplo #1 Exemplos de max()
<?php
echo max(2, 3, 1, 6, 7); // 7
echo max(array(2, 4, 5)); // 5
// Aqui na prática compara-se -1 < 0, então 'hello' é o maior valor
echo max('hello', -1); // hello
// Arrays de múltiplos valores e tamanhos diferentes, retora o mais longo
$val = max(array(2, 2, 2), array(1, 1, 1, 1)); // array(1, 1, 1, 1)
// Em arrays de mesmo tamanho compara-se da esquerda para direita
// e nesse exemplo: 2 == 2, mas 5 > 4
$val = max(array(2, 4, 8), array(2, 5, 1)); // array(2, 5, 1)
// Se um array e um não array são informados, o array será retornado
// pois é considerado maior que qualquer outro valor
$val = max('string', array(2, 5, 7), 42); // array(2, 5, 7)
// Se um argumento é NULL ou booleano, ele será comparado contra
// outros valores utilizando a regra FALSE < TRUE independente dos tipos envolvidos.
// No exemplo abaixo -10 é tratado como TRUE na comparação
$val = max(-10, FALSE); // -10
// 0 por outro lado é considerado false, de forma que é "menor que" TRUE
$val = max(0, TRUE); // TRUE
?>