PHP Math-Funktionen verstehen
Leitfaden zu PHP-Mathematikfunktionen: Runden, Potenzen, Wurzeln, min/max, Trigonometrie, Logarithmen, Zufallszahlen und eingebaute Konstanten.
PHP enthält eine umfangreiche Sammlung eingebauter Math-Funktionen, mit denen Sie Berechnungen durchführen können, die über die grundlegenden Rechenoperatoren (+ - * / %) hinausgehen. Damit können Sie Gleitkommazahlen runden, Quadratwurzeln und Potenzen berechnen, mit Trigonometrie und Logarithmen arbeiten und Zufallszahlen erzeugen – alles ohne eine zusätzliche Erweiterung zu installieren. Jede hier gezeigte Funktion ist Teil des PHP-Kerns.
Dieses Kapitel führt Sie durch die Funktionen, die Sie am häufigsten benötigen werden, gruppiert nach ihrer Aufgabe, mit einem kurzen Hinweis darauf, wann jede einzelne nützlich ist. Wenn Sie mit numerischen Werten in PHP noch nicht vertraut sind, lesen Sie zunächst PHP Numbers.
Operatoren vs. Funktionen
Für alltägliche Arithmetik verwenden Sie Operatoren – sie sind kürzer und schneller zu lesen:
<?php
echo 7 + 3; // 10
echo 7 % 3; // 1 (modulo: remainder)
echo 2 ** 10; // 1024 (exponentiation operator)
?>Greifen Sie auf die Math-Funktionen zurück, wenn Sie etwas benötigen, das Operatoren allein nicht ausdrücken können – Runden, Quadratwurzeln, Absolutwerte, Trigonometrie, Logarithmen oder Zufallszahlen. Der **-Operator und pow() erledigen dieselbe Aufgabe; der Rest dieser Seite behandelt Fälle, für die es kein Operator-Äquivalent gibt.
Rundfunktionen
Eine der häufigsten mathematischen Operationen in PHP ist das Runden von Zahlen auf eine bestimmte Dezimalstelle. Die Funktion round kann verwendet werden, um eine Zahl auf die nächste ganze Zahl oder auf eine bestimmte Anzahl von Dezimalstellen zu runden. Zum Beispiel rundet der folgende Code die Zahl 3.14159 auf zwei Dezimalstellen:
Beispiel der PHP-Funktion round
Zusätzlich zur Funktion round bietet PHP auch die Funktionen ceil und floor, mit denen eine Zahl auf- oder abgerundet werden kann. Zum Beispiel:
Beispiele der PHP-Funktionen ceil und floor
Wann welche verwenden: round() rundet auf den nächsten Wert (und akzeptiert eine Präzision), ceil() rundet immer auf, und floor() rundet immer ab. Beachten Sie, dass ceil() und floor() einen Float zurückgeben, sodass ceil(3.1) den Wert 4.0 ergibt, nicht die Ganzzahl 4. Ein häufiger Fallstrick ist, dass round() standardmäßig „Hälfte von Null weg" rundet, sodass round(2.5) den Wert 3 und round(-2.5) den Wert -3 ergibt.
Potenzen und Wurzeln
Verwenden Sie pow() (oder den **-Operator), um eine Zahl in eine Potenz zu erheben, und sqrt(), um eine Quadratwurzel zu ziehen. abs() gibt den absoluten (nicht negativen) Wert zurück, was nützlich ist, wenn Sie nur die Größe interessiert – zum Beispiel die Distanz zwischen zwei Zahlen.
Beispiel der PHP-Funktionen pow, sqrt und abs
<?php
echo pow(2, 8) . "\n"; // 256
echo 2 ** 8 . "\n"; // 256 (operator form)
echo sqrt(144) . "\n"; // 12
echo abs(-17) . "\n"; // 17
// Distance between two numbers, regardless of order:
echo abs(3 - 10) . "\n"; // 7
?>Min, Max und Summen
min() und max() geben den kleinsten und größten ihrer Argumente zurück. Sie können ihnen eine Liste von Werten oder ein einzelnes array übergeben. array_sum() und array_product() addieren bzw. multiplizieren alle Elemente eines arrays.
Beispiel der PHP-Funktionen min, max und array_sum
<?php
echo min(4, 2, 9, 1) . "\n"; // 1
echo max([4, 2, 9, 1]) . "\n"; // 9 (works on an array too)
$prices = [19.99, 5.50, 12.00];
echo array_sum($prices) . "\n"; // 37.49
echo array_product([2, 3, 4]) . "\n"; // 24
?>Trigonometrische Funktionen
PHP bietet mehrere trigonometrische Funktionen, darunter sin, cos und tan, mit denen der Sinus, Kosinus und Tangens eines Winkels berechnet werden können. Diese Funktionen sind nützlich für Berechnungen im Zusammenhang mit Winkeln und Distanzen im 2D- und 3D-Raum. Beachten Sie, dass diese Funktionen Winkel in Bogenmaß und nicht in Grad erwarten. Verwenden Sie deg2rad(), um Grad in Bogenmaß umzurechnen, bevor Sie sie an diese Funktionen übergeben.
Beispiel der PHP-Funktionen sin, cos und tan
<?php
$angle = deg2rad(30);
$sine = sin($angle);
echo $sine . "\n";
// Output: 0.5
$cosine = cos($angle);
echo $cosine . "\n";
// Output: 0.866025
$tangent = tan($angle);
echo $tangent . "\n";
// Output: 0.577350
?>Logarithmische Funktionen
PHP bietet mehrere logarithmische Funktionen, darunter log, log10 und exp, mit denen verschiedene logarithmische Operationen durchgeführt werden können. Die Funktion log berechnet den natürlichen Logarithmus einer Zahl, während die Funktion log10 den Logarithmus zur Basis 10 einer Zahl berechnet. Die Funktion exp berechnet den Exponentialwert einer Zahl.
Beispiel der PHP-Funktionen log, log10 und exp
<?php
$num = 10;
$natural_log = log($num);
echo $natural_log . "\n";
// Output: 2.30259
$log10 = log10($num);
echo $log10 . "\n";
// Output: 1
$exponential = exp($num);
echo $exponential . "\n";
// Output: 22026.465
?>Verschiedene Funktionen
Zusätzlich zu den oben besprochenen Funktionen bietet PHP mehrere weitere mathematische Funktionen, die für verschiedene Zwecke verwendet werden können. Die Funktion abs kann beispielsweise verwendet werden, um den Absolutwert einer Zahl zu berechnen, während die Funktion pow zur Berechnung der Potenz einer Zahl verwendet werden kann.
Beispiel der PHP-Funktionen abs und pow
Für ganzzahlige Division verwenden Sie intdiv(), und für den Gleitkomma-Rest verwenden Sie fmod():
<?php
echo intdiv(17, 5) . "\n"; // 3 (integer division)
echo fmod(17.5, 5) . "\n"; // 2.5 (float remainder; % only works on ints)
?>Zufallszahlen
Um Zufallszahlen zu erzeugen, verwenden Sie rand() oder mt_rand() für allgemeine Zwecke und random_int(), wenn der Wert kryptografisch sicher sein muss (Passwörter, Tokens, OTP-Codes). Alle drei akzeptieren ein einschließendes Minimum und Maximum.
Beispiel für PHP-Zufallszahlen
<?php
$dice = rand(1, 6); // a number from 1 to 6
echo $dice . "\n";
$secure = random_int(1, 100); // cryptographically secure 1–100
echo $secure . "\n";
?>Da sich die Ausgabe bei jedem Aufruf ändert, werden die genauen Zahlen oben jedes Mal unterschiedlich sein. Verwenden Sie random_int(), wenn die Zufälligkeit sicherheitskritisch ist – rand() ist vorhersehbar und darf nicht für geheime Zwecke verwendet werden.
Math-Konstanten
PHP definiert mehrere eingebaute Konstanten für gängige Werte, sodass Sie keine Näherungswerte fest einprogrammieren müssen:
<?php
echo M_PI . "\n"; // 3.1415926535898 (π)
echo M_E . "\n"; // 2.718281828459 (Euler's number)
echo M_SQRT2 . "\n";// 1.4142135623731 (√2)
// Area of a circle with radius 5:
echo M_PI * pow(5, 2) . "\n"; // 78.539816339745
?>Die Konstante PHP_INT_MAX gibt Ihnen die größte Ganzzahl an, die Ihre Plattform speichern kann; überschreiten Sie diese, konvertiert PHP das Ergebnis stillschweigend in einen Float. Weitere Informationen zu Ganzzahl- und Float-Grenzen finden Sie unter PHP Numbers und PHP Data Types.
Fazit
PHP's Math-Toolkit deckt alles ab – von einfachem Runden über Trigonometrie und Logarithmen bis hin zu sicheren Zufallszahlen – alles in die Sprache eingebaut, ohne dass eine Erweiterung erforderlich ist. Als Faustregel gilt: Verwenden Sie Operatoren für einfache Arithmetik, round/ceil/floor zur Steuerung der Präzision, min/max/array_sum zur Zusammenfassung von Sammlungen und random_int(), wenn Zufälligkeit unvorhersehbar sein muss. Um die Formatierung von Zahlen für die Anzeige von deren Berechnung zu trennen, lesen Sie number_format.