Ist der erste und einzige Parameter ein Array, gibt
min() den niedrigsten Wert dieses Arrays zurück. Werden
mindestens zwei Parameter übergeben, gibt min() den
kleinsten dieser Werte zurück.
Hinweis:
Werte unterschiedlichen Typs werden unter Verwendung der
Standard-Vergleichsregeln
verglichen. Zum Beispiel wird ein nichtnumerischer string
mit einem int verglichen, als ob er 0
wäre, aber mehrere nichtnumerische string-Werte werden
alphanumerisch verglichen. Der tatsächlich zurückgegebene Wert ist vom
ursprünglichen Typ ohne angewandte Umwandlung.
Achtung
Vorsicht ist geboten, wenn Argumente verschiedenen Typs übergeben werden,
da min() in diesem Fall unvorhersehbare Ergebnisse
liefert.
min() gibt den gemäß den Standard-Vergleichen als
"kleinsten" angesehenen Parameter-Wert zurück. Evaluieren mehrere Werte
unterschiedlichen Typs als gleich (z. B. 0 und
'abc'), wird der zuerst übergebene zurückgegeben.
min() löst bei einem Fehler nun einen
ValueError aus; vorher wurde false
zurückgegeben und ein Fehler der Stufe E_WARNING
ausgegeben.
8.0.0
Die Art und Weise, wie
Zeichenketten und Zahlen verglichen werden,
wurde geändert, sodass min() in solchen Fällen nicht
mehr je nach Reihenfolge der Argumente unterschiedliche Werte
zurückgibt.
// Hier vergleichen wir -1 < 0, so dass -1 der kleinste Wert ist echo min('hello', -1), PHP_EOL; // -1
// Bei mehreren Arrays unterschiedlicher Länge, gibt min das kürzeste zurück $val = min(array(2, 2, 2), array(1, 1, 1, 1)); // array(2, 2, 2) var_dump($val);
// Mehrere Arrays gleicher Länge werden von links nach rechts verglichen, // daher ist in unserem Beispiel 2 == 2, aber 4 < 5 $val = min(array(2, 4, 8), array(2, 5, 1)); // array(2, 4, 8) var_dump($val);
// Sind ein Array und ein Nicht-Array-Parameter gegeben, wird nie das Array zurückgegeben, // da Vergleiche Arrays als größer behandeln als alle anderen Werte $val = min('string', array(2, 5, 7), 42); // string var_dump($val);
// Ist ein Argument NULL oder ein boolescher Wert, wird es mit anderen Werten // unter Verwendung der Regeln FALSE < TRUE und NULL == FALSE verglichen, ohne Rücksicht auf die anderen beteiligten Typen // In den folgenden Beispielen wird -10 im Vergleich wie TRUE behandelt $val = min(-10, FALSE, 10); // FALSE var_dump($val);