(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
?>