最大値を返す

# max

(PHP 4, PHP 5, PHP 7, PHP 8)

max — 最大値を返す

### 説明

function max(mixed `$value`, mixed `...$values`): mixed

代替のシグネチャ (名前付き引数をサポートしていません):

function max(array `$value_array`): mixed

パラメータとして配列をひとつだけ渡した場合は、max() は配列の中で最も大きい数値を返します。 ふたつ以上のパラメータを指定した場合は、max() はそれらの中で最も大きいものを返します。

> 注意:

> 異なる型の値を比較する際には、 標準の比較ルールに従います。 たとえば、数値形式でない string を int と比較するときには、数値 `0` と評価します。 しかし、数値形式でない string どうしを比較するときには、アルファベット順で評価します。 返される値は、何も変換をしていない、元の型の値となります。

警告

異なる型の値を引数として渡す際には注意しましょう。 max() が予期せぬ結果を返す可能性があるからです。

### パラメータ

`value`

  任意の 比較可能な 値。

`values`

  任意の 比較可能な 複数の値。

`value_array`

  値を含んだ配列。

### 戻り値

max() は、パラメータとして渡した値の中で、標準の比較ルールに従って最大になるものを返します。 異なる型で同じ値と評価される複数の値 (`0` と `'abc'` など) があった場合は、関数に最初に渡されたほうを返します。

### エラー / 例外

max() に空の配列を渡すと、 ValueError をスローします。

### 変更履歴

バージョン | 説明
--- | ---
8.0.0 | max() は失敗した場合に、 ValueError をスローするようになりました。 これより前のバージョンでは、`false` を返し、 `E_WARNING` レベルのエラーが発生していました。
8.0.0 | 文字列と数値の比較方法が変更された ため、 数値と非数値形式の文字列を比較した場合に、引数の順番に応じて異なる値を返さなくなりました。

### 例

例1 max() の使用例

    <?php
    echo max(2, 3, 1, 6, 7), PHP_EOL;  // 7
    echo max(array(2, 4, 5)), PHP_EOL; // 5

    // -1 と 0 の比較なので、'hello' のほうが大きくなります
    echo max('hello', -1), PHP_EOL;    // hello

    // 長さが異なる複数の配列を渡すと、いちばん長い配列を返します
    $val = max(array(2, 2, 2), array(1, 1, 1, 1)); // array(1, 1, 1, 1)
    var_dump($val);

    // 同じ長さの複数の配列を渡すと、max はその要素を左から
    // 辞書順に比較します。この例では 2 == 2 ですが 5 > 4 となります
    $val = max(array(2, 4, 8), array(2, 5, 1)); // array(2, 5, 1)
    var_dump($val);

    // 配列と配列でない値が渡された場合、常に
    // 配列が最大と判定されます。
    $val = max('string', array(2, 5, 7), 42);   // array(2, 5, 7)
    var_dump($val);

    // 一方の値が NULL や boolean の場合、それを他の値と比較するときには、
    // もう一方の値の型が何であるかにかかわらず、FALSE < TRUE というルールを使います。
    // 以下の例では、-10 は TRUE と評価されます。
    $val = max(-10, FALSE); // -10
    var_dump($val);

    // 一方 0 は FALSE と評価されるので、TRUE よりは小さいとみなされます。
    $val = max(0, TRUE); // TRUE
    var_dump($val);
    ?>

### 参考

- min() - 最小値を返す
- count() - 配列または Countable オブジェクトに含まれるすべての要素の数を数える

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open