PHP arbejder med to forskellige taltyper. Integers (heltal) og float (decimaltal). Det gode ved det er at PHP selv finder ud af det.
Se nedestående eksempel,hvor vi anvender funktionen var_dump() til at finde ud af hvilken type input er.:
php > var_dump(7); int(7) php > var_dump(3.14); float(3.14) php > var_dump("hej"); string(3) "hej"
var_dump() fortæller altså at:
Når man sender et input til PHP kommer det altid som en tekststreng. Derfor skal man kunne konvertere mellem integers, float og string (heltal, decimaltal og tekststrenge). Det gør man ved at anvende:
php > $a = "7"; php > $b = "3.14"; php > echo var_dump($a,$b); ← vis datatypen på variablerne a og b string(1) "7" string(4) "3.14" php > $a = intval($a); php > $b = floatval($b); php > echo var_dump($a,$b); ← vis de nye datatypen på variablerne a og b int(7) float(3.14) php > $a = strval($a); php > $b = strval($b); php > echo var_dump($a,$b); ← vis de nye datatypen på variablerne a og b string(1) "7" string(4) "3.14"
Før vi går i gang med at programmere skal du lige have et overblik over måden man laver betingelser på. Ofte vil programmer fungere efter en skabelone der siger: Hvis noget sker – så gør følgende. Her under er et overblik over de logiske operatorer (regningsarter), som du skal anvende når du programmerer
php > echo 8+2; 10 php > echo 8-2; 6 php > echo 8 + 2; 10 php > echo 8 - 2; 6 php > echo 8 * 2; 16 php > echo 8 / 2; 4 php > echo ( 8 * 2 ) - 4; 12 php > echo 8 * ( 2 - 4 ); -16
Som du kan se overholder PHP regningsreglerne.
Af andre vigtige regningsarter kan nævnes
se eksemplerne her:
php > echo pi(); 3.1415926535898 php > echo pow(3,3); 27 php > echo sqrt(64); 8 php > echo abs(-10); 10
Logiske operatorer anvendes til at undersøge tal og teksstrenge. Det kan f.eks. være hvis vi skal finde ud af om en person er over 18. Det vil vi f.eks. kunne beskrive på følgende måde:
eller
Herinder er nogle tabeller med vigtige logiske operatorer
Disse operatorer anvender vi når noget er det samme som ... eller ikke er. Læg mærke til at der anvendes to == til "lig med". Det skyldes at et enkelt = kun anvendes når vi laver variabler. Et sidste vigtigt tegn er !. Når det sættes foran en logisk operator, så får operatoren den modsatte betydning.
Forskelle på om vi anvender to eller tre = handler om vi sammenligner tal eller tekststrenge.
Operator | Beskrivelse | Eksempel |
---|---|---|
== | Lig med | 5 == 8 → falsk |
!== | Ikke lig med | 5 !== 8 → sand |
=== | Identisk med | 5 === "5" → falsk |
Læg mærke til at jeg bruger var_dump() til at bestemme om udsagnet er sandt eller falsk.
php > var_dump(5==8); bool(false) php > var_dump(5!==8); bool(true) php > var_dump(5==="5"); bool(false)
Operator | Beskrivelse | Eksempel |
---|---|---|
> | større end | 5 > 8 → falsk |
< | mindre end | 5 < 8 → sand |
>= | Større end eller lig med | 5 >= 8 → falsk |
<= | Mindre end eller lig med | 5 <= 8 → sand |
php > var_dump(5>8); bool(false) php > var_dump(5<8); bool(true) php > var_dump(5>=8); bool(false) php > var_dump(5>=8); bool(false)
Nogle gange har vi brug for at der er flere ting der skal være opfyldt. Andre gange skal det kun være et kriterie blandt mange. Her anvender man nedestående
Operator | Beskrivelse | Eksempel |
---|---|---|
x and y | Både x og y skal være sand | x=6 ; y=3 (x < 10 and y > 1) → sand |
x && y | ||
x or y | Kun en behøver at være sand | x=6 ; y=3 (x == 6 or y == 1) → sand |
x || y | ||
x xor y | Kun en må være sand | x=6 ; y=3 (x == 6 xor y == 1) → sand |
!x | Udsagnet x er ikke sandt | x=6 ; y=3 !(x==y) → sand |
php > $x = 6; php > $y = 3; php > var_dump($x<10 and $y>1); bool(true) php > var_dump($x<10 && $y>1); bool(true) php > var_dump($x==6 or $y==1); bool(true) php > var_dump($x==6 || $y==1); bool(true) php > var_dump($x==6 xor $y==1); bool(true) php > var_dump($x==6 xor $y==3); bool(false) php > var_dump(!($x==$y)); bool(true)
Når man programmerer har man ofte brug for at lade et tal vokse eller falde mens programmet kører. Dette kalder man for increments. Det kan f.eks. være, hvis programmet tæller antallet af loginforsøg. Se nedestående eksempler
Ofte skal man kun lægge en til eller trække en fra, her anvender man ++ eller --
php > $a = 0; php > $a++; php > echo $a; 1 php > $a--; php > echo $a; 0
Skal variablerne vokse eller aftage med andre faktorer gør man som herunder.
php > $a = 1; php > echo $a; 1 php > echo $a += 1; 2 php > echo $a += 1; 3
Det samme kan man gøre med -, * og / (minus, gange og dividere). Se eksempel
php > $antal = 4; ← sætter a til 4 php > echo $antal +=3; ← a + 4 = 7 7 php > echo $antal *=4; ← 7 * 4 = 28 28 php > echo $antal /=7; ← 28 / 7 = 4 4 php > echo $antal -=4; ← sætter 4 - 4 = 4 0
Når man programmere har man ofte brug for at kende forskellen mellem 2 tal. Problemet er, at man ikke altid kan være sikker på om forskellen er en positiv eller en negativ værdi. F.eks. kan forskellen mellem 2 temperaturer f.eks. 17° og 21° være både 4 og -4. Ved at bruge abs() kan vi sikre os at en forskel altid bliver leveret som en positiv værdi.
echo abs(-4); 4
Der er tre måder at runde et tal af på med PHP
php > echo round(2.25); 2 php > echo round(2.75); 3 php > echo ceil(2.25); 3 php > echo ceil(2.75); 3 php > echo floor(2.25); 2 php > echo floor(2.75); 2
Til at lave tilfældige tal anvender man mt_rand(). Herunder er der lavet et simpelt program der kaster med en 6 sidet terning.
php > echo mt_rand(1,6); 6 php > echo mt_rand(1,6); 3 php > echo mt_rand(1,6); 1 php > echo mt_rand(1,6); 3
PHP har 2 logaritme funktioner. Den naturlige logaritme og 10-tals logaritmen:
Derudover gælder det at:
php > $e = exp(1); sætter $e = e
php > echo log($e);
1
php > echo log10(1000);
3
For at anvende den inverse funktion skal man anvende:
De trigonometriske funktioner er: cos(), sin() og tan(). Deres inverse funktioner er: acos(), asin() og atan(). Vær opmærksom på at PHP anvender radianer til trigonometriske beregninger.
php > $a = pi(); sætter variablen $a = π php > echo cos($a); -1 php > echo sin($a/2); 1 php > echo tan($a/4); 1 php > echo acos(-1); 3.1415926535898 = π php > echo asin(1); 1.5707963267949 = π/2 php > echo atan(1); 0.78539816339745 = π/4
For at omskrive mellem grader og radianer anvendes:
php > echo deg2rad(45); 0.78539816339745 php > echo rad2deg(pi()); 180
For at omskrive fra fra et talsystem til et andet andvendes base_convert().
Ofte har man behov for at omskrive mellem binære (2-talssystem), decimal (10-talssystem) og hexadecimal (16-talssystem). Det gøres med:
php > echo bindec("1001"); 9 php > echo decbin(9); 1001 php > echo hexdec("FF2D"); 65325 php > echo dechex(65325); ff2d
Læg mærke til at det binære og hexadecimale tal skal skrives i anførselstegn - altså som tekststrenge.