Brugernavn:




Kodeord: Husk
Forside Forum Artikler Downloads Søg
 

Håndtering af datatyper – PHP

Forord

Som en af de ”ældre” brugere her på Rowl, har jeg efterhånden set mange koder hvor folk håndterer deres data forkert. Det er vigtigt at kunne forstå hvordan PHP virker, for at vide hvad man skal gøre ved de forskellige datatyper. Derfor har jeg valgt at lave denne artikel.

True og false

Teoretisk set, er hele PHP sproget bygget op på true og false værdier, såkaldte booleans. Det vil sige, at enten returnerer funtionen true, ellers returnerer den false. Et eksempel kunne være

  1. <?php

  2. if ( print(1) )
  3.     print "Return: true";
  4. else
  5.     echo "Return: false";
  6. ?>
Denne kode leder os også ind på hvad forskellen på print og echo, nemlig at print altid returnerer true, hvorimod echo slet ikke returnerer nogen værdi. Dvs. at overstående kode ikke ville være mulig at udføre med echo.
På den måde vil alle funktioner og variabler altid enten have en true eller false værdi. Her under har jeg lavet 2 lister hvor du kan se hvilke værdier der returnerer true og false

True

• En streng med indhold eks. $var = "string";
• Positive og negative tal (med undtagelse af 0)
• Værdien true, eks. $var = true;

False

• En tom streng eks. $var = "";
• Tallet 0
• Værdien false eks. $var = false;
• Typen null eks. $var = null; (Null er en type for sig selv, en constant, der altid har den samme værdi).

Datatyper

I PHP findes der forskellige datatyper, alt efter hvilken slags information du vil lagre.
Integer, boolean, float og strings
Derudover er der arrays som ikke rigtig passer ind i kategorien sammen med de førnævnte, det anses for at være en sammensat datatype.
Lad os starte med et kigge på integer, eller på dansk – et heltal. Det er så simpelt som det lyder. Positive og negative tal, samt 0 går ind under denne kategori.
Integers er en af de ting som mange nybegyndere ikke har helt styr på. Et eksempel på dårlig kodning kunne for eksempel være:

  1. <?php

  2. if ( $int = "5" ) //Forkert
  3.     echo "Tallet er 5";

  4. ?>

Her gøres der åbenlys forkert brug af vores integer. Til trods for at overstående eksempel vil virke uden problemer, er apostrofferne en ”fejl”, integers, floats og booleans skal nemlig ikke indkapsles i apostroffer, i hvert fald hvis du vil have en pænt og fejlfri kode.
Float er en betegnelse for et decimaltal, for eks. 1.234. Bid mærke i at der bruges punktum til decimaltal og IKKE komma(grundet af det engelske talsystem). Såvel som integers skal floats ikke pakkes ind i apostroffer.
Sidst men ikke mindst er der strings, ”strenge” oversat til dårlig dansk. En string bruges når vi skal gemme tekst information (bogstaver).

  1. <?php

  2. $string = "En tekst";
  3. print  $string;

  4. ?>
Her indkapsles teksten i apostroffer.
Hvis du ønsker at gøre brug af en variable inde i din string, kan det gøres på flere forskellige måder.

  1. <?php
  2. $int = 16;
  3. $string = "Mit navn er Thomas, jeg er {$int} år gammel";

  4. print $string;
  5. ?>
Ved at indkapsle min variabel (som indeholder en integer) imellem to tuborgklammer, udskrives tallet sammen med alt teksten, og vores variable $string, forbliver en streng selvom der sættes en integer i midten.

  1. <?php
  2. $int = 16;
  3. $string = 'Mit navn er Thomas, jeg er $int år gammel';

  4. print $string;
  5. ?>
Overstående kode, vil returnere: ” Mit navn er Thomas, jeg er $int år gammel”, det er på grund af vores single quote, (’). Hvis du benytter dig af denne metode, skal du lukke og åbne dine quotes, før du kan udskrive en variabel.
For eksempel:

  1. <?php
  2. $int = 16;
  3. $string = 'Mit navn er Thomas, jeg er '.$int.' år gammel';

  4. echo $string;
  5. ?>

For at du kan få lov at bruge single quotes i en string som er lavet af single quotes, skal du markere den med en backslash(omvendt skråsteg) (\ ). Eksempelvis:
  1. <?php
  2. $int = 16;
  3. $string = 'Mit navn er Thomas, jeg er \'.$int.\' år gammel';

  4. echo $string;
  5. ?>

Hvis du er i tvivl om hvilken type din variabel er, kan du altså bruge den indbyggede PHP funktion ”gettype()” til at finde ud af det.

  1. <?php
  2. $int = 16;
  3. $string = 'Mit navn er Thomas, jeg er \'.$int.\' år gammel';

  4. echo gettype($string);
  5. ?>
Vil returnere: ”String”. Og dermed kan vi konkluderer at vores variabel er en string.

Afslutning

Det var alt hvad jeg havde til jer denne gang, jeg er ked af hvis der mangler noget indhold, men da jeg startede på artiklen havde jeg alle tingene inde i hovedet. Jeg synes bestemt der mangler noget, men hvad – Det kan jeg ikke huske (: Artiklen er skrevet over flere dage, så det kan godt være der er nogle hop i artiklen. Jeg beklager! (: Håber i kan bruge det til noget.
Sidst redigeret 17:33 09/12/2009
Oprettet af:

PHP

Point modtaget: 150

Rating: 3.7
22:10 08/12/2009

Kommentarer

Giv din mening tilkende om denne artikel, eller læs andres.
Har du spørgsmål eller brug for hjælp til denne artikel henvises du til forummet.
Perfekt! Er træt af folk der specielt skriver

  1. $int = "100"; // Dette er mit super seje integer!

  2. // nej.

5/5
Oprettet af:
  Mail
16:44 10/12/2009
Hvad bruger man integers til?
Oprettet af:
  Mail
16:44 22/12/2009
Integers er hele tal uden decimal.

Og ja olivernoerd det træls når folk ikke fatter at man ikke sætter citationstal om tal!
Oprettet af:
  Mail
03:09 27/12/2009
Ellers er det en double ^_^
Oprettet af:
  Mail
16:13 27/12/2009
Syntes lidt du mangler type specifik sammenligning af variabler og php's funktioner til at parse variabler til en given type.
ellers en fin artikel
Oprettet af:
  Mail
17:06 25/01/2010
Du skal være oprettet og logget ind for at kommentere en artikel
Copyright © Rowl.dk v/ Michael Raagaard | 2005-10 | Alle rettigheder forbeholdes