(PHP 4, PHP 5, PHP 7, PHP 8)
max — Возвращает наибольшее значение
Альтернативная сигнатура (не поддерживается с именованными аргументами):
Если первый и единственный параметр — массив, то функция max() вернёт наибольшее значение из этого массива. Если переданы хотя бы два параметра, функция max() вернёт наибольший из них.
Замечание:
Значения отличающихся типов будут сравниваться по стандартным правилами сравнения. Наример, нечисловая строка (string) будет сравниваться с целым числом (int) так, как если бы её значение было равно
0
, но нечисловые строки (string) между собой будут сравниваться в алфавитно-цифровом порядке. Возвращаемое значение сохранит исходный тип без преобразования.
Соблюдают осторожность при передаче аргументов отличающихся типов, поскольку результат функции max() будет непредсказуем.
Функция max() вернёт значение параметра,
признанного «наибольшим» по стандартным правилам сравнения.
Если разнотипные значения оцениваются как равные (например 0
и «abc»
), функция вернёт первое.
Если передан пустой массив, функция max() выбрасывает исключение ValueError.
Версия | Описание |
---|---|
8.0.0 |
Функция max() теперь в случае возникновения ошибки
выбрасывает исключение ValueError;
ранее возвращала значение false и выдавала ошибку уровня E_WARNING .
|
8.0.0 | Поскольку сравнения строк с числами были изменены, функция max() больше не возвращает другое значение в зависимости от порядка аргументов для таких случаев. |
Пример #1 Пример использования функции max()
<?php
echo max(1, 3, 5, 6, 7); // 7
echo max(array(2, 4, 5)); // 5
// Здесь сравниваются 0 > -1, так что «hello» больше
echo max('hello', -1); // hello
// При сравнении массивов, разной длины — функция max вернёт более длинный
$val = max(array(2, 2, 2), array(1, 1, 1, 1)); // array(1, 1, 1, 1)
// При сравнении массивов одинаковой длины — функция max будет сравнивать их поэлементно
// слева направо, в этом примере 2 == 2, но 4 < 5
$val = max(array(2, 4, 8), array(2, 5, 1)); // array(2, 5, 1)
// Если передан массив и не массив, будет возвращён массив
$val = max('string', array(2, 5, 7), 42); // array(2, 5, 7)
// Если один из аргументов NULL или логическое значение, то сравнение с другими
// значениями будет происходить по правилу FALSE < TRUE, вне зависимости от того
// какого типа параметры переданы.
// В примере ниже, -10 трактуется как TRUE
$val = max(-10, FALSE); // -10
// 0 трактуется как FALSE, значит, он «меньше» TRUE
$val = max(0, TRUE); // TRUE
?>