für die Bearbeitung numerischer Werte stehen in Php wie auch in anderen Programmiersprachen
eine Menge Funktionen zur Verfügung. Hier eine kleine Auswahl
Funktion | Bedeutung | Beispiel | |
mt_rand | Zufallszahl, Argumente sind Minimum und Maximum | mt_rand(3, 5) | 3 |
ceil() |
liefert die nächstgrössere Ganzzahl einer Kommazahl (aufrunden) ceiling Zimmerdecke oben |
ceil(13.2) | 14 |
floor() | liefert den ganzzahligen Teil einer Zahl (abrunden) floor Fußboden unten | floor(3.45) | 3 |
round() | rundet eine Zahl auf, wenn die Stelle hinter dem Komma größer gleich 5 ist, ansonsten wird abgerundet. | round(5.5435 ) | 6 |
Der zweite Parameter von round() bestimmt, auf wieviel Stellen hinter dem Komma gerundet wird. | round(5.5435 , 2) | 5.54 | |
Gibt man als zweiten Parameter einen negativen Wert ein, wird vor dem Komma gerundet. | round(249059, -3) | 249000 | |
max() | liefert das Maximum einer Reihe von Zahlen (die höchste Zahl) | max(120,50,200) | 200 |
min() | liefert das Minumum einer Reihe von Zahlen (die kleinste Zahl) | min(120,50,200) |
50 |
sqrt() | liefert die Quadratwurzel einer Zahl | sqrt(25) | 5 |
bindec() | verwandelt einen Binärwert in einen Dezimalwert, Argument Binärzahl als String. siehe auch base_convert() | bindec('10011101') | 157 |
decbin() | verwandelt einen Dezimalwert in einen Binärwert | decbin(256) | 100000000 |
hexdec() | Hexadezimale Zahl in Dezimal. Es wird ein String erwartet. | hexdec('f4a'); | 3914 |
dechex() | Dezimal in Hex | dechex(148) | 94 |
M_PI | die Zahl pi | M_PI | 3.1415926535898 |
M_E | die eulersche Zahl e | M_E | 2.718281828459 |
Trigonometrische Funktionen |
|||
acos() | Arcus Cosinus | acos(0.125) | 1.4454684956268 |
asin() | Arcus Sinus | asin(0.1578) | 0.15846234105109 |
cos() | Cosinus | cos(0.4568) | 0.8974685412584 |
deg2rad() | Verwandelt Grad in Bogenmaß | deg2rad(45) sin(deg2rad(45)) |
0.78539816339745 0.70710678118655 |
sin() | Sinus | sin(1.254) | 0.9502383135749 |
tan() | Tangens | tan(0.215) | 0.21837521312271 |
Logarithums Funktionen |
|||
exp() | Potenziert die natürliche Zahl mit dem im Argument übergebenen Wert Beispiel: Wert e ( eulersche Zahl) | exp(1) | 2.718281828459 |
log() | ermittelt den natürlichen Logarithmus (den Logarithmus zur Basis e) der im Argument übergebenen Zahl Beispiel: fast der Wert 1 | log(2.718281828) | 0.99999999983113 |
log10() | ermittelt den Logarithmus zur Basis 10 der im Argument übergebenen Zahl, Beipiel: Wert 3 | log10(1000) | 3 |
pow() | potenziert den im ersten Argument angegebenen Wert mit dem Wert des zweiten Arguments, Beipiel 10*10*10 | pow(10,3) | 1000 |
Die trigonometrischen Funktionen erwarten alle ein Argument, den Winkel, der im
Bogenmaß anzugeben ist. Der Vollkreis (360 Grad) entspricht dabei dem Wert
2*pi. Siehe dazu auch meinen Flash
Tip Aktionen. Thema programmierte
Bewegung
Der Wert 0.785398 steht für ca 45 Grad. Will man mit Grad rechnen kann man
die Umwandlungsfunktion deg2rad benutzen.
Der Rechenoperator Modulo gibt den Restwert einer Division zurück. In bestimmten Berechnungen braucht man den ganzzahligen Wert der Division, also die Zahl vor dem Komma. Seit PHP 7 gibt es dazu die Funktion intdiv(). Der erste Parameter ist der Divident der zweite der Divisor.
intdiv(7, 3); //2 7%3 //1 7/3 // 2 Rest 1
Damit ist es sehr einfach ein Raster für Positionen in Reihen und Spalten zu erstellen. Hier wird eine fortlaufende Zahl $i in einer for-Schleife durch 3 geteilt. Der ganzzahlige Quotient liefert den Wert der Reihennummer. Mit Modulo erzeugt man den Restwert der Division. Dieser wird für die Spaltennummer verwendet.
Beispiel linke Seite
for ($i = 0; $i < 12; $i++) { echo $i . " Reihe " . intdiv($i, 3) . " Spalte " . $i % 3 . "<br>"; } ?>
Beispiel rechte Seite
Multipliziert man diese Werte mit einem Abstandswert, bekommt man absolute Positionswerte für eine Anordnung in Reihen und Spalten.
$row = 0; $col = 0; $colcount = 3; $abstand = 70; for ($i = 0; $i < 12; $i++) { $row = intdiv($i, $colcount)*$abstand; $col = $i%$colcount * $abstand; echo '<img src="img/roset.png" style="top:'.$row.'px; left:'.$col.'px; position: absolute;">'; }
Mit number_format() kann man Zahlen formatieren. Man kann die Anzahl der Nachkommastellen definieren und an welchen Stellen ein Komma oder Punkt angezeigt werden soll.
1234.5678 | echo 1234.5678; |
Ohne Formatierung, anstatt Komma, wird ein Punkt notiert. |
1,235 | echo number_format(1234.5678); |
Mittels number_format erhält man amerikanische Schreibweise mit Komma hinter Tausenderstelle, die Kommastellen werden auf- oder abgerundet |
1,234.57 | echo number_format(1234.5678,2); |
als zweites Argument kann man die Anzahl der Kommastellen angeben, die angezeigt werden sollen, die restlichen werden auf- oder abgerundet |
1.234,57 | echo number_format(1234.5678,2, ",", "."); |
2 weitere Argumente sind Anzeige des Kommas und Anzeige des Punktes hinter der Tausenderstelle, beides in Anführungszeichen eingeschlossen |
sprintf() ist eine weitere Methode zur Formatierung von Zahlen. Der erste Parameter bestimmt die Art der Formatierung
$zahl = 3.40349580;
3.403496 | echo sprintf("%f", $zahl); |
Ausgabe als Fließkommzahl |
3.403 | echo sprintf("%.3f", $zahl) |
Die Zahl wird auf 3 Stellen hinter dem Komma gerundet |
3.403496e+0 | echo sprintf("%3e", $zahl); |
Exponentialzahl mit Rundung auf 3 Nachkommastellen |
3 | echo sprintf("%d", $zahl); |
Ganzzahl |
03 | echo sprintf("%'.02d", $zahl); |
Ganzzahl mit mindestens 2 Stellen. Eventuell wird eine 0 vorangestellt. |
3 | <?php echo mt_rand(1,3); ?> |
mt_rand(minimum, maximum) Hier wird bei jedem Aufruf der Seite eine Zufallszahl von 1 bis 3 erzeugt. |
1 | <?php mt_srand((double)microtime()*1000000); echo mt_rand(1,3); ?> |
Es wird empfohlen mit mt_srand() einen Zeitwert vorzugeben, damit der Zufallsgenerator neue Zahlen liefert. |
random_int() gibt es ab PHP 7 und erzeugt eine zufällige Ganzzahl. Der Bereich von bis wird mit 2 Argumenten definiert.
Mit base_convert kann man in ein beliebiges Zahlensystem konvertieren. Von Dezimal, in Binär, Hexadezimal oder was auch immer. Das binäre Zahlensystem besteht nur aus 2 Zeichen, o und 1.
Ein Zahlensystem mit 3 Zeichen besteht aus 0,1,2 etc. Wenn ein Zahlensystem höher als das dezimale mit 10 Zeichen ist, kommen nach dem höchsten Zeichen, der 9 die Buchstaben hinzu. So hat das Hexadezimal Zeichen von 0 bis f.
Das höchste Zahlensystem besteht aus 32 Zeichen.
base_convert() hat 3 Parameter, die Zahl, das Zahlensystem in dem die Zahl aufgeführt ist und das gewünschte Zahlensytem. Um eine 43 vom dezimalen ins Hexadezimale mit 16 Zeichen zu konvertieren, notiere:
base_convert(43,10,16)
11110100 | base_convert(244,10,2) |
201210 | base_convert(534,10,3) |
3310 | base_convert(244,10,4) |
10 | base_convert(16,10,16) |
2c | base_convert(244,10,16) |
v | base_convert(31,10,32) |
10 | base_convert(32,10,32) |
5 | base_convert(101,2,10) |
Beispiel 1: 2 Beispiel 2: 1 Beispiel 3: 2 |
<?php
|
Wenn man ++ nach dem Variablennamen schreibt, wird der Wert erst anschließend erhöht, so daß man ihn mit echo erneut aufrufen müßte, siehe erstes Beispiel. Schreibt man ++ vor den Variablennamen so wird diese erhöht, bevor Sie mit echo ausgegeben wird, siehe Beispiel 3.
$var5--
Mittels des doppelten Minuszeichens nach dem Variablennamen wird der bestehende
Wert um 1 vermindert.
9 | <? |