Mathe

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) 5
       
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.

Ganzzahlige Division & Modulo

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>";
    }
    ?>
0 Reihe 0 Spalte 0
1 Reihe 0 Spalte 1
2 Reihe 0 Spalte 2
3 Reihe 1 Spalte 0
4 Reihe 1 Spalte 1
5 Reihe 1 Spalte 2
6 Reihe 2 Spalte 0
7 Reihe 2 Spalte 1
8 Reihe 2 Spalte 2
9 Reihe 3 Spalte 0
10 Reihe 3 Spalte 1
11 Reihe 3 Spalte 2

 

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;">';
}

number_format() Zahlen formatieren

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() Zahlen formatieren

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.

Zufallszahl

mt_rand

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.
3 <?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(1,6)

random_int() gibt es ab PHP 7 und erzeugt eine zufällige Ganzzahl. Der Bereich von bis wird mit 2 Argumenten definiert.

 

base_convert()

Zahlensystem konvertieren

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)
base_convert()
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)

 

Increment und Decrement

Beispiel 1: 2
Beispiel 2: 1
Beispiel 3: 2
<?php
echo "Beispiel 1: ";
$var1 = 1;
$var1++;
echo $var1;

echo "<br>Beispiel 2: ";
$Var2=1;
echo $Var2++;

echo "<br>Beispiel 3: ";
$Var3=1;
echo ++$Var3;

?>

Increment erhöhen

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.

Decrement vermindern

$var5--
Mittels des doppelten Minuszeichens nach dem Variablennamen wird der bestehende Wert um 1 vermindert.

9 <?
$var5=10;
$var5--;
echo $var5;
?>

Webdesign / PHP / mySQL / Tipps
Copyright © Michael Albers
www.pastorpixel.de