Een string is over het algemeen het meest gebruikte type variabele in PHP. Het is een tekenreeks die bestaat uit nul of meerdere tekens (letters, cijfers, leestekens, ...). Je kan een string dus voor bijna alles gebruiken, denk maar aan woorden, zinnen, telefoonnummers, enzoverder. Omdat een string geen beperking stelt op zijn lengte kan je deze dus ook gebruiken voor lange teksten in op te slaan.
Er zijn vier verschillende manieren om een string aan te maken, de twee meest voorkomende manieren zijn het omringen van de tekenreeks met ofwel aanhalingstekens (") ofwel apostrofen ('), ookwel quotes en single quotes genoemd.
<?php $string = "Hallo, dit is een string!"; echo $string; // Bovenstaande voorbeeld zal dus Hallo, dit is een string! weergeven op het scherm. $string = 'Hallo, dit is een string!'; echo $string; // Dit voorbeeldje doet net hetzelfde ?>
Het verschil tussen deze twee manieren zit hem erin dat alles wat tussen de single quotes staat letterlijk geïnterpreteerd wordt: variabelen worden dus niet vervangen door hun respectievelijke waarden, maar letterlijk weergeven. Even een voorbeeldje om het principe duidelijk te maken:
<?php $naam = 'Koen'; echo 'Hallo, mijn naam is $naam'; // Dit zal dus niet het gewenste resultaat opleveren "Hallo, mijn naam is Koen", maar wel "Hallo, mijn naam is $naam". echo "Hallo, mijn naam is $naam"; // Deze code werkt wel ?>
Variabelen concateneren
Wanneer men strings of variabelen samenvoegt tot één string dan zegt men dat deze strings worden geconcateneerd. Concateneren gebeurt door middel van een punt.
<?php $zin = 'Hallo, ik heet '; $naam = 'Koen'; echo $zin . $naam; echo 'Hallo, ik heet ' . 'Koen'; echo 'Hallo, ik heet ' . $naam; // Bovenstaande voorbeelden hebben allemaal dezelfde output: "Hallo, ik heet Koen" ?>
Merk op dat het ons in deze voorbeeldcode wel gelukt is om een variabele correct weer te geven, terwijl we toch gebruik gemaakt hebben van single quotes. Deze manier van werken wordt ook wel eens 'Variabelen buiten de quotes' houden genoemd. Deze methode om variabelen weer te geven is veel overzichtelijker en bovendien sneller, want dan weet de parser meteen dat hij dat als een variabele moet interpreteren. Wanneer je met single quotes werkt heb je ook geen last van het altijd maar moeten escapen van dubbele quotes wanneer je met HTML werkt in je string:
<?php $html = '<a href="http://www.sitemasters.be" title="Sitemasters, alles voor de webmaster!">Sitemasters</a>'; // Is veel overzichtelijker dan $html = "<a href=\"http://www.sitemasters.be\" title=\"Sitemasters, alles voor de webmaster!\">Sitemasters</a>"; ?>
Omwille van bovenstaande redenen zal je mij dus bijna altijd single quotes zien gebruiken in plaats van dubbele quotes.
en integer bevat nummerieke gegevens en is een deelverzameling van de gehele getallen met het bereik beperkt tussen de waarden -231 en 231-1 (-2147483648 en 2147483647).
Integers kunnen worden weergeven in verschillende talstelsels: decimaal, hexadecimaal en octaal. Ze worden eventueel voorafgegaan door toestandstekens (- of +).
Rond een integer staan nooit quotes, hun vorm verschilt van talstelsel tot talstelsel.
Het decimale talstelsel
In dit talstelsel worden getallen samengesteld met de cijfers 0 tot en met 9. Het is het standaard standaard en meest voorkomende stelsel waarin we rekenen. Een decimaal getal wordt vaak afgekort als dec. In het volgende voorbeeldje wordt de opbouw en structuur van een decimaal getal duidelijk gemaakt. Als voorbeeld nemen we het decimaal getal 546.
| 102 | 101 | 100 | ||
| 5 | 5 maal 102 (100) | 500 | ||
| 4 | 4 maal 101 (10) | 40 | ||
| 6 | 6 maal 100 (1) | 6 | ||
| 5 | 4 | 6 | 546 |
Een decimaal getal in PHP ziet er dus als volgt uit:
<?php $dec = 546; ?>
Het binaire talstelsel
Het binaire of tweetallig talstelsel is een getalstelsel waarin een getal wordt voorgesteld als een rij van achtereenvolgende cijfers 0 en 1. De geheugencellen in computers kunnen slechts de waarden 0 en 1 aannemen, daarom wordt er de informatie opgeslagen als een binaire voorstelling. Getallen in computers worden dus voorgesteld als binaire getallen. In PHP komt het binaire talstelsel vooral naar vooren wanneer we gaan werken met bits en wordt vaak afgekort als bin. Een voorbeeld van een binair getal is 101000, wat het getal 40 voorstelt. Een voorstelling van de vorming van een binair getal:
| Binair | 2(positie van 1) - 1 |
Decimaal |
| 100000 | 2(6-1) | 32 |
| 010000 | 2(5-1) | 16 |
| 001000 |
2(4-1) | 8 |
|
000100 |
2(3-1) | 4 |
| 000010 | 2(2-1) | 2 |
| 000001 | 2(1-1) | 1 |
| 101000 | 2(6-1) + 2(4-1) |
32 + 8 = 40 |
Een binair getal wordt in PHP zelden of nooit geschreven, men stelt ze dan ook voor met hun decimale vorm. In combinatie met bitwise operatoren kunnen we deze bijvoorbeeld gebruiken voor permission systemen (access control lists).
Soms hoor je wel eens de grap "There are 10 types of people in the world: those who understand binary, and those who don't." de 'grap' hierbij is natuurlijk dat 10 hier het decimaal getal 2 voorstelt, en niet gewoon 10.
Het hexadecimale talstelsel
Het hexadecimale talstelsel is een 16-tallig stelsel waarbij gebruikt wordt gemaakt van dezelfde cijfers als die van het decimale stelsel namelijk 0 t/m 9, plus dan nog eens de letters A t/m F. Let wel op: deze getallen worden in deze context gezien als cijfers, dus A is gelijk aan 10, B is gelijk aan 11, enzoverder.
Een hexadecimaal getal wordt voorafgegaan door de prefix 0x en wordt vaak afgekort als hex.
| Dec | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| Hex | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | A | B | C | D | E | F |
In bovenstaande tabel is te zien wat de decimale waarde is van elk hexadecimaal getal.
Laat ons bijvoorbeeld het hexadecimaal getal 0x3F eens van naderbij bekijken.
| 161 | 160 | Dec | |
| 3 | 3 maal 161 (16) | 48 | |
| F | 15 maal 100 (1) | 15 | |
| 3 | F | 63 |
Het hexadecimaal getal 0x3F heeft dus een decimale waarde van 63. In PHP ziet een hexadecimaal getal er zo uit:
<?php $hex = 0x3F; ?>
Het octale talstelsel
Dit is het 8-tallig stelsel en gebruikt de cijfers 0 t/m 7. Vroeger werd dit talstelsel gebruikt om binaire gegevens overzichtelijker weer te geven, maar vandaag de dag wordt het niet meer zoveel gebruikt. Nu gebruikt men hier namelijk het hexadecimaal talstelsen voor. Octale getallen worden voorafgegaan door een nul en wordt vaak afgekort door oct. Laten we het octaal getal 031 eens van naderbij bekijken.
| 81 | 80 | Dec | |
| 3 | 3 maal 81 (8) | 24 | |
| 1 | 1 maal 80 (1) | 1 | |
| 3 | 1 | 25 |
De decimale waarde van het octale getal 031 is dus 25. De schrijfwijze in PHP is als volgt:
<?php $oct = 031; ?>
Floating point numbers "drijvende kommagetallen", beter bekend als floats, doubles of real numbers zijn getallen met met cijfers achter de komma, of de wetenschappelijke notatie van een getal. Floats zijn dus een uitbreiding op de integers. Je bekomt bijvoorbeeld een float wanneer de deling van twee integers een breuk oplevert. Dankzij floats kunnen er grotere getallen worden opgeslagen maar dit gaat kost het getal dan wel zijn precisie, een te groot getal zal dus met zijn wetenschappelijke schrijfwijze worden opgeslagen. De wetenschappelijke schrijfwijze is dus een manier om grote getallen weer te geven, ze worden gevormd door een benadering van het getal maal Eexponent, E staat hier voor het getal 10.
<?php $float = 1/3; // $float bevat nu de waarde 0.333333333333 $float2 = 1E+6; // $float2 heeft hier dus de waarde 1 maal 10 tot de zesde = 1000000 $float3 = 0.1E-6; // $float3 heeft hier de waarde 0.1 maal tien tot de min zesde = 0.0000001, of 1E-7 ?>
Een variabele van het type boolean of kortweg bool kan maar twee waarden bevatten, namelijk true (waar) of false (onwaar). Een boolean wordt gebruikt om aan te tonen of iets al dan niet waar is.
Opgelet: elke waarde wordt gezien als true behalve de bool false zelf, het integer 0, de float 0.0 en de string "0", een array met nul elementen, en de speciale NULL waarde.
<?php $bool = true; // bevat de waarde true, 'waar' $bool = false; // bevat de waarde 'false' ?>
Opgelet: variabelen van het type boolean worden voor verschillende dingen gebruikt, in het verloop van de cursus zal dit gebruik verder duidelijk gemaakt worden.
Variabelen van het type Array worden gebruikt om verschillende gegevens bij elkaar in op te slaan.
Een simpele array ziet er bijvoorbeeld zo uit:
<?php $array = array('Auto', 'Fiets', 'Bus', 'Trein', 'Tram'); // de array $array bevat nu de elementen auto, fiets, bus, trein en tram ?>
Meer info over arrays kan je vinden in dit hoofdstuk.
Een andere populaire manier van scripten is het Object Oriented Programming, afgekort OOP. Dit is een systeem waarbij gebruik gemaakt wordt van een reeks classes of objecten.
Een class ziet er ongeveer zo uit:
<?php Class ClassName { public function getText() { return 'Hello World!'; } } // Aanroepen gaat dan zo: $class = new ClassName(); echo $class->getText(); // Dit geeft dan "Hello World!" ?>
Opmerking: voor de volledigheid staat dit type er ook bij, maar dit is te uitgebreid en te gevorderd om nu al te behandelen, vandaar dat dit onderwerp nog uitvoerig wordt besproken in het gevorderde deel van deze cursus.
Een resource is een variabele die een verwijzing bevat naar een bepaalde externe bron, bijvoorbeeld een bestand dat geopend is voor te schrijven, een databaseverbinding, een afbeelding, ...
Variabelen van het type resource worden altijd teruggegeven door een functie, je zal dus nooit zelf een resource moeten definiëren.
Een variabele van het speciale type NULL is een variabele die geen waarde heeft. De enige waarde van deze variabele is dus NULL zelf.
Een variabele is van het type NULL wanneer:
<?php $variabele = NULL; ?>