max
(PHP 4, PHP 5, PHP 7)
max — Возвращает наибольшее значение
Описание
Альтернативная сигнатура (не поддерживается с именованными аргументами):
Если первый и единственный параметр - массив, то max() возвратит наибольшее значение из этого массива. Если переданы хотя бы два параметра, max() вернет наибольший из них.
Замечание:
Значения разных типов будут сравниваться в соответствии со стандартными правилами сравнения. К примеру, нечисловая строка (string) будет сравниваться с целым числом (int) так, как будто это
0
, а множество нечисловых строк (string) будут сравниваться алфавитно-цифровым порядком. Выбранное значение будет возвращено без конвертации типа.
Будьте осторожны при передаче аргументов разных типов, поскольку результат max() может вас удивить.
Список параметров
Возвращаемые значения
max() вернет значение "наибольшего" из элементов массива, в
соответствии со стандартными правилами сравнения. Если несколько разнотипных
значений посчитаются идентичными (например 0
и
'abc'
), функция вернет первое из них.
Если передан один пустой массив, то функция вернет false
и вызовет ошибку
уровня E_WARNING
.
Примеры
Пример #1 Пример использования max()
<?php
echo max(1, 3, 5, 6, 7); // 7
echo max(array(2, 4, 5)); // 5
// 'hello' будет представлено как числое значение значение 0.
// Оба параметра имеют одинаковое значение, поэтому результат
// определяется порядком, в котором параметры переданы
echo max(0, 'hello'); // 0
echo max('hello', 0); // hello
// Здесь сравниваются -1 < 0, так что 'hello' больше
echo max('hello', -1); // hello
// В данном случае 0 больше, чем -1, поэтому результат равен 'hello'.
echo max(-1, 'hello'); // 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
?>