<? Basiscursus PHP. Samenstelling: Eddy Krishnadath



Vergelijkbare documenten
Javascript oefenblad 1

Formulieren maken met Dreamweaver CS 4/CS 5

Variabelen en statements in ActionScript

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

De tag aan het begin van het PHPscript is "<?php" aan het einde van het PHPscript gebruik je "?>".

Lab Webdesign: Javascript 3 maart 2008

In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze. programmeertaal? En hoe is het ontstaan? Ook leer je welke editors

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

VAN HET PROGRAMMEREN. Inleiding

Over PHP. PHP en MySQL. 1.1 Inleiding. In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object.

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Programmeren met Arduino-software

Software 1. php mysql. bachelor grafische en digitale media cross-media ontwerp & grafimediatechnologie academiejaar semester 1

Vakgroep CW KAHO Sint-Lieven

Een korte samenvatting van enkele FORTRAN opdrachten

PHP. Les 4 : Variabelen

Voor vragen: of mail naar

Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2

1 Inleiding Installatie 21. WAMP met Apache Friends 23. XAMPP starten en controleren 26. LAMP 32 De installatie ongedaan maken 33

BEGINNER JAVA Inhoudsopgave

Zelftest Inleiding Programmeren

Query SQL Boekje. Fredrik Hamer

9. MYSQL. Daarin zien we het administratie paneel van mysql.

Formulieren maken met Dreamweaver CS 4

Les 2 Eenvoudige queries

Lab Webdesign: Javascript 11 februari 2008

PYTHON REEKS 1: BASICS. Mathias Polfliet

Python. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14

6.2 VBA Syntax. Inleiding Visual Basic

4 ASP.NET MVC. 4.1 Controllers

Lab Webdesign: Javascript 11 februari 2008

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Les 9: formulier controle met javascript.

Rapporten. Labels en Rapporten in Atlantis 1. Atlantis heeft twee manieren om output te genereren: 1. labels 2. rapporten (reports)

Inhoud. VBA Excel 2010

Macro s. 4.2 Een macro maken

Koppeling met een database

VBA voor Doe het Zelvers deel 20

Dynamische websites met PHP (basis) Karel Nijs 2010/09

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

5. Functies. In deze module leert u:

Inhoudsopgave Disclaimer... 3 Voorwoord... 4 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP... 8 Joomla installeren op

De Kleine WordPress Handleiding

Web building gevorderden: CSS & JavaScript. Karel Nijs 2008/11

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:

Het relaas van de beginnende programmeur. Het hoe en waarom van de assistent

AFO 139 Automatische export

Programmeren in Java les 3

II. ZELFGEDEFINIEERDE FUNCTIES

B3 Programmeren - PHP

Programmeerstructuren met App Inventor

Mach3Framework 5.0 / Website

Dynamiek met VO-Script

van PSD naar JavaScript

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.

SQL / Systeemanalyse

Bijlage Inlezen nieuwe tarieven per verzekeraar

Een typisch programma in C en C++ bestaat uit een aantal onderdelen:

Lab Webdesign: Javascript 25 februari 2008

6. Het maken van een database

Small Basic Programmeren Text Console 2

Technische nota AbiFire Rapporten maken via ODBC

MINICURSUS PHP. Op dit lesmateriaal is een Creative Commons licentie van toepassing Sebastiaan Franken en Rosalie de Klerk Bambara

Modelleren en Programmeren

Een spoedcursus python

Informatie over. 5VWO DT51: JavaLogo. Casper Bezemer. Toetsweek 1 13 oktober 2016

XAMPP Web Development omgeving opzetten onder Windows.

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

Exercise assistant on-line

Selenium IDE Webdriver. Introductie

continue in een for, while of do lus herhaalt de lus vroegtijdig. De volgende herhaling wordt onmiddellijk begonnen.

Technische nota AbiFire5 Rapporten maken via ODBC

Functies. Huub de Beer. Eindhoven, 4 juni 2011

Korte uitleg: Wat doet de shell met mijn commandoregel?

Dynamische websites met PHP (basis) Karel Nijs 2010/09

Lab Webdesign: Javascript 7 april 2008

DrICTVoip.dll v 2.1 Informatie en handleiding

atica inform PHP & MySQL

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, uur

Practicumopgave 3: SAT-solver

Webscripting. PCVO Gent & OBAC. Willem De Meyer

Handleiding Wordpress

Boutronic. MSSQL Express server voor Log functie. >> Installatie handleiding << 2 april 2012, versie 1.0d

17 Operaties op bits Bitoperatoren en bitexpressies

Handleiding bij de Booktest Generator

Dynamische Websites. Week 2

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

5/5 Red Carpet. 5/5.1 Inleiding

Automatisering voor Financiële Dienstverleners. Werken met Queries en Merge Documenten. For more information visit our website at

6.3 VBA Syntax Instructie. Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken.

1 DATABASE MANAGEMENT

Samenvoegen met Word en Excel 2010

Overzicht HTML/Formulieren/PHP codes.

Les W-04: Een introductie in PHP

Transcriptie:

<? Basiscursus PHP?> Samenstelling: Eddy Krishnadath

Ekrishnadath Amsterdam 2002

Inhoud 1. Introductie 1 Wat is PHP Welke mogelijkheden heeft PHP Een korte geschiedenis van PHP 2. Integratie met HTML 3 3. Instructiescheiding 4 4. Commentaarregels 5 5. Gegevenstypen 6 Integers Floating point Strings Objecten 6. Variabelen 10 7. Operatoren 11 Rekenkundige operatoren Toewijzing Vergelijking Incrementele/decrementele operatoren Logische operatoren Voorrangsregels 8. Functies 14 9. Classes 15 10. Controlestructuren 16 IF ELSE ELSEIF WHILE DO WHILE FOR SWITCH 11. Datum en Tijd 22 Time Date Mktime

12. Bestandsmanipulatie 24 File_exists Readfile Fopen Fclose Fgets Fputs 13. Array Functies 27 Count In_array Array_slice Array_merge Array_rand Array_push 14. Formulierverwerking 30 15. Database Connectiviteit 33 15.1 ODBC 33 odbc_connect odbcd_close en odbc_close_all odbc_exec odbc_result_all odbc_num_rows odbc_fetch_rows odbc_num_fields odbc_result odbc_field_name 15.2 MySQL 33 mysql_connect mysql_select_db mysql_db_query Tabellen weergeven 16. Diverse Functies 40 Include en require Cookies Sessions Rand Header Empty en isset Extra string functies 17. Regular Expressions 45

Basiscursus PHP pagina 1 1. Introductie Wat is PHP PHP ( "PHP: Hypertext Preprocessor") is een serverside HTML-embedded scripting taal. Dat was een simpel antwoord, maar wat wordt er mee bedoeld? PHP is een scripting taal waarmee HTML-pagina s kunnen worden bewerkt en verwerkt. In tegenstelling tot scripting talen als javascript en VB-script, wordt PHP niet afgehandeld door de browser van de client, maar door de webserver zelf. De mogelijkheden van PHP zijn dan ook eerder te vergelijken met CGI-scripts en andere serverside applicaties, maar dan wel met het voordeel dat ze net zo eenvoudig kunnen worden aangemaakt als een clientside script. Een zeer eenvoudig PHP-script kan er als volgt uitzien. <html> <head> <title>voorbeeld</title> </head> <body> <?php echo "Hallo, ik ben een PHP script!";?> </body> </html> voorbeeld 1 Zie je hoe verschillend dit is van een CGI script geschreven in andere talen zoals Perl of C -- in plaats van een programma te schrijven met veel commando's om HTML te laten zien, kun je een HTML script schrijven met ingebouwde code die iets doen (in dit geval een stuk tekst laten zien). De PHP code is omgeven door speciale start en stop tags die het mogelijk maken tussen normale mode en PHP mode over te stappen. Wat PHP onderscheid van client-side talen zoals Javascript is dat de code op de server wordt uitgevoerd. Als een gelijksoortig script zoals het hierboven staande voorbeeld wordt gebruikt, zal de browser de uitkomst van het script ontvangen en zal op geen enkele manier kunnen achterhalen wat de onderliggende code is. Het is zelfs mogelijk om alle HTML bestanden op jouw website te laten parsen door PHP, en op geen enkele manier zullen gebruikers merken dat er ook maar iets gaande is. Welke mogelijkheden heeft PHP Als basis kan PHP alles doen wat elk ander CGI script kan doen, zoals het ophalen van formuliergegevens, het genereren van dynamische pagina's of het sturen en ontvangen van cookies.

Pagina 2 Basiscursus PHP Waarschijnlijk is de sterkste kant van PHP dat het ondersteuning biedt voor een groot scala aan databases. Het schrijven van een database gekoppelde web page is ongelooflijk simpel. De volgende databases worden ondersteund: Adabas D Ingres Oracle (OCI7 and OCI8) dbase InterBase Ovrimos Empress FrontBase PostgreSQL FilePro (read-only) msql Solid Hyperwave Direct MS-SQL Sybase IBM DB2 MySQL Velocis Informix ODBC Unix dbm PHP bied ook ondersteuning voor het communiceren met andere services als IMAP, SNMP, NNTP, POP3, HTTP en talloze andere. Het is ook mogelijk om netwerk sockets te gebruiken en te communiceren met andere protocollen. Een korte geschiedenis van PHP PHP is bedacht ongeveer in de herst van 1994 door Rasmus Lerdorf. Vroegere niet uitgebrachte versies werden alleen op zijn homepage gebruikt om te zien wie zijn C.V. bekeek. De eerste versie die gebruikt werd door anderen kwam vroeg in 1995 uit en was bekend als de Personal Home Page Tools. Het bestond uit een erg simpele parser die alleen een aantal erg simpele macro s kende en een aantal utilities die normaal waren voor home pages in die tijd: Een gastenboek, een tellertje en wat andere dingen. De parser is herschreven in midden-1995 en werd genoemd PHP/FI Versie 2. Dit "FI" kwam van een ander pakket dat Rasmus had geschreven welke HTML form gegevens kon verwerken. Hij combineerde de Personal Home Page tools scripts met de Form Interpreter en voegde msql support toe. PHP/FI was geboren. PHP/FI groeide ongelooflijk snel en een groot aantal personen stuurde eigen verbeteringen in. Het is erg moeilijk om harde statistieken te geven, maar er is geschat dat eind 1996 PHP/FI in gebruik was op minimaal 15000 web sites over de hele wereld. In midden- 1997 was dit aantal gegroeid tot meer dan 50000. Rond deze tijd was er ook een omslag in de ontwikkeling van PHP. Het veranderde van Rasmus'hobby project tot een project waaraan verscheidene personen hadden bijgedragen. Het werd een meer georganiseerd team. De parser werd herschreven door Zeev Suraski and Andi Gutmans en deze nieuwe parser vormde de basis voor PHP Versie 3. De meeste functionaliteit van PHP/FI werd overgenomen naar PHP 3, maar een groot gedeelte werd totaal herschreven. Tegenwoordig (eind 2000) worden zowel PHP 3 en PHP 4 gedistribueerd bij een groot aantal commerciële producten zoals C2's StrongHold web server en RedHat Linux. Een pessimistisch aantal, gebaseerd op een extrapolatie van het aantal gepubliceerd door Netcraft (zie ook Netcraft Web Server Survey) geeft aan dat PHP in gebruik is bij meer dan 3.300.000 sites over de hele wereld. In vergelijking, dit is op meer plaatsen dan sites die Netscape's vlaggenschip Enterprise Server gebruiken op het Internet, en komt aardig dicht bij het aantal IIS servers op het Internet (3.8 miljoen). Sinds enige tijd is er een nieuwe generatie van PHP. Deze gebruikt de krachtige Zend scripting engine om hoge performance te bieden, en ondersteund ook veel meer webservers dan alleen Apache.

Basiscursus PHP pagina 3 2. Integratie met HTML Er zijn vier manieren om HTML en PHP met elkaar te integreren. Van elk van deze methoden zie je hieronder van elk een voorbeeld waarmee je HTM verlaat en overgaat op PHP-code. De te gebruiken extensie voor bestanden met PHP-code zal doorgaans.php zijn, maar dit is uiteindelijk afhankelijk van de webserver configuratie. 1. <? echo ("Dit is het eenvoudigst, een SGML verwerkingsinstructie\n");?> 2. <?php echo("als je met XML documenten werkt, doe het dan zo\n");?> 3. <script language="php"> echo ("sommige editors (zoals FrontPage) gaan niet zo best om met verwerkingsinstructie s"); </script> 4. <% echo ("Het staat je vrij om ASP-style tags te gebruiken"); %> <%= $variabele; # is de korte ASP variant voor "<%echo.." %> voorbeeld 2 Opmerking. De eerste methode is alleen bruikbaar als in de PHP.ini is aangegeven dat de zogenaamde short tags mogen worden gebruikt. Dit is standaard wel het geval, maar mocht dit niet zo zijn, dan plaats je in het configuratie bestand de regel: short_open_tag = On Werk je met XML, verander de short_open_tag dan wel in Off. De vierde methode is ook alleen beschikbaar indien dit in het ini-bestand aangegeven is. Dit is standaard niet het geval. ASP gebruikers kunnen dit wijzigen door in het configuratiebestand de regel : asp_tags = Off te wijzigen in asp_tags = On.

Pagina 4 Basiscursus PHP 3. Instructie scheiding In PHP begint elk blok met code met één van de in het voorbeeld genoemde openingstags gevolgd door opdrachten. Na de laatste opdracht volgt de bij de opening horende sluitingstag. Deze opdrachten zullen we verder aanduiden met de engelse term statement. Statements worden van elkaar gescheiden door, net zoals dat het geval is bij C of Perl, elke statement te beëindigen met een puntkomma. De tag waarmee de code wordt afgesloten (?>) geeft ook het einde van een regel aan. De onderstaande twee voorbeelden zijn daarom beide correct. <?php echo "Dit is een test";?> <?php echo "Dit is een test"?> voorbeeld 3 Bij het achterwege laten van de puntkomma als scheidingsteken, zal het resultaat een parse error op een bepaalde regel zijn. De fout zal echter meestal terug te vinden zijn in een regel boven de aangegeven regel. Geeft de server bijvoorbeeld aan: Parse error in line 156, dan zal, indien het gaat om een vergeten puntkomma, de fout doorgaans een regel eerder gemaakt zijn. Overigens betreft uiteraard niet elke parse error een vergeten puntkomma.

Basiscursus PHP pagina 5 4. Commentaarregels PHP ondersteunt 'C', 'C++'en Unix shell commentaar. Bijvoorbeeld: <?php echo "Dit is een test"; // Dit is een éénregelige c++ opmerking /* Dit is a meerregelige opmerking met nog een commentaarregel */ echo "Dit is nog test"; echo "Een laatste Test"; # Dit is shell opmerking?> voorbeeld 4 Nog een voorbeeld: <h1>dit is een <?# echo "eenvoudig";?> voorbeeld.</h1> <p>de tekst hierboven zal weergeven 'Dit is een voorbeeld'. Voorbeeld 5 Genest commentaar kan je liever vermijden. <?php /* echo "Dit is een test"; /* Deze opmerking zal een probleem veroorzaken */ */?> voorbeeld 6 Wil je een zelfgeschreven script verspreiden en voorzien van een inleidend verhaal of uitgebreide opmerkingen, dan kun je het unix hekje gebruiken om een rondom je tekst een kader te maken. ############################################################# # # # Dit script mag vrijelijk worden gebruikt en aangepast, mits # # deze tekst gehandhaafd blijft. Verkoop is niet toegestaan. # # # ############################################################# Dergelijke teksten staan altijd goed boven je scripts, een goede inleiding verhoogt de gebruiksvriendelijkheid en het goed gebruik van je scripts.

Pagina 6 Basiscursus PHP 5. Gegevenstypen PHP ondersteunt de volgende gegevenstypen: - Integer - Floating-point - String - Array - Object - Boolean Integers Integers kunnen op de volgende manier worden gebruikt: $a = 1234; # decimaal getal $a = -123; # negatief getal $a = 0123; # octaal getal (gelijk aan 83 decimaal) $a = 0x12; # hexadecimaal getal (gelijk aan 18 decimaal) voorbeeld 7 De grootte van een integer is platformafhankelijk, hoewel een maximum van ongeveer 2 miljard gebruikelijk is. Komt neer op 32 bit. Floating point Floating point getallen ("doubles") kunnen worden aangegeven met de volgende syntaxen: $a = 1.234; $a = 1.2e3; voorbeeld 8 De grootte van een floating point is platformafhankelijk, hoewel een maximum van ongeveer 1. 8e308 gebruikelijk is. Komt neer op 64 bit. Strings Strings kun je aangeven door gebruik te maken van ("). Variabelen in een string met dubbele aanhalingstekens zullen door PHP doorgaans probleemloos worden herkend. <? $str = Kees ; echo ( Mijn hond heet $str );?> voorbeeld 9 Evenals in C en Perl, kan de backslash ("\") worden gebruikt voor het invoegen van speciale tekens de zogenaamde escape characters. Hieronder een overzicht.

Basiscursus PHP pagina 7 Teken betekenis \n linefeed (LF or 0x0A in ASCII) ga naar de volgende regel \r carriage return (CR or 0x0D in ASCII) \t horizontale tab (HT or 0x09 in ASCII) \\ backslash \$ dollar teken \" aanhalingsteken \[0-7]{1,3 Het gaat hier om een octale notatie \x[0-9a-fa-f]{1,2 Het gaat hier om een hexadecimale notatie Strings kunnen ook geplaatst worden tussen enkele aanhalingstekens, maar dan treden er enkele beperkingen op. In de eerste plaats zullen variabelen niet meer worden herkend en verder zullen nog alleen de \\ en \ als escape karakters worden herkend. Wil je een string definiëren die uit meerdere regels bestaat, dan bestaat er nog een derde methode namelijk de doc syntax (<<<) De string open en sluit je daarbij met de letters EOD om de tekst te identificeren. Hieronder een voorbeeld. $str = <<<EOD voorbeeld van een string met meer regels waarbij de doc syntax wordt gebruikt. EOD; voorbeeld 10 Een string kan worden uitgebreid met behulp van de (.) dot operator. <? /* een string toewijzen. */ $str = "dit is een string"; /* toevoegen aan de string. */ $str = $str. " met wat meer tekst"; /* Een andere manier om toe te voegen. */ $str.= " en maar meteen naar de volgende regel.<br>"; /* tekst op de volgende regel */ $str.= dit is de volgende regel ;?> voorbeeld 11 Arrays Arrays zijn niet meer dan één- of meer dimensionale tabellen. Een één dimensionale tabel komt neer op een reeks met bepaalde waarden. Arrays kun je aanmaken met list() of array()

Pagina 8 Basiscursus PHP Hieronder enkele simpele voorbeelden van arrays. $a[0] = "abc"; $a[1] = "def"; $b["nr"] = 13; voorbeeld 12 Een ééndimensionale array # voorbeeld 1: $a["kleur"] = "rood"; $a["smaak"] = "zoet"; $a["vorm"] = "rond"; $a["vrucht"] = "appel"; $a[3] = 4; voorbeeld 13 # voorbeeld 2: $a = array( "kleur" => "rood", "smaak" => "zoet", "vorm" => "rond", "vrucht" => "appel", 3 => 4 ); voorbeeld 14 Een tweedimensionale array <? $a = array( "appel" => array( "kleur" => "rood", "smaak" => "zoet", "vorm" => "rond" ), "oranje" => array( "kleur" => "oranje", "smaak" => "zoetzuur", "vorm" => "rond" ), "banaan" => array( "kleur" => "geel", "smaak" => "lekker", "vorm" => "banaan-vormig" ) ); echo $a["appel"]["smaak"]; # zal opleveren: "zoet"?> voorbeeld 15

Basiscursus PHP pagina 9 Objecten Om gebruik te kunnen maken van een object dient het object eerst te worden aangemaakt als een class. Vervolgens kan het worden aangeroepen met new. <? class voorbeeld { function test() { echo "dit is een test."; $uitkomst = new voorbeeld; $uitkomst->test();?> voorbeeld 16 Boolean Het type boolean heeft betrekking op variabelen die waar of onwaar kunnen zijn. PHP kent ook twee speciale constanten van dit type namelijk TRUE en FALSE. Booleans worden veelal gebruikt in combinatie met logische operatoren.

Pagina 10 Basiscursus PHP 6. Variabelen In PHP worden variabelen aangeven met een dollarteken gevolgd door een aan de variabele toegewezen naam. Hierbij moet er tussen het dollarteken en de naam geen spatie komen te staan. Namen van variabelen zijn hoofdletter gevoelig. Geldige namen beginnen met een letter of een onderstreep. Na het eerste teken mag een willekeurige combinatie van letters, cijfers volgen. Alle ASCII-tekens van 127 tot en met 255 (0x7f-0xff) zijn eveneens geldig. Het interval voor geldige tekens is dus: '[a-za-z_\x7f-\xff][a-za-z0-9_\x7f-\xff]*'. Enkele eenvoudige voorbeelden: $var = "Wendy"; $Var = "Patricia"; echo "$var en $Var"; // geeft "Wendy en Patricia" voorbeeld 17 $4e = 'nog niet'; // niet valide; begint met een nummer $_4e = 'nog niet'; // valide; begint met een onderstreep $täyte = 'mansikka'; // valide; 'ä' is ASCII 228. voorbeeld 18 In tegenstelling tot veel andere talen hoef je in PHP variabelen niet vooraf te declareren. Je hoeft dus niet vooraf aan te geven dat je een bepaalde variabele wil gebruiken. De variabele wordt automatisch gedeclareerd door het toekennen van een waarde eraan. De variabelen in de bovenstaande voorbeelden kunnen dus zowel nieuwe als oude variabelen zijn. Dit is overigens niet van belang. Wat geldt is de laatst toegekende waarde. Aangezien variabelen niet vooraf worden gedeclareerd en aan een vast type worden gekoppeld, wordt het gebruik van variabelen erg flexibel. De waarde van de variabelen kan van elk bekend type zijn, maar kunnen bij het toekennen van een nieuwe waarde probleemloos van type veranderen. Zo kan een variabele eerst een integer zijn, maar vervolgens probleemloos een string worden. Een PHP-variabele blijft geldig zolang de uitvoering van het script doorloopt. Uitzonderingen hierop zijn variabelen die gebruikt worden binnen een functie. Met behulp van cookies en sessies, kunnen variabelen zelfs worden gebruikt na beeindiging van het script waarin ze zijn toegekend.

Basiscursus PHP pagina 11 7. Operatoren PHP kent een veelheid aan operatoren. Hieronder worden een aantal veel gebruikte operatoren vermeld. Rekenkundige operatoren $a + $b Optellen Som van $a en $b. $a - $b Aftrekken Verschil van $a en $b. $a * $b Vermenigvuldigen Product van $a en $b. $a / $b delen Quotient van $a en $b. $a % $b Modulus Restant van $a gedeeld door $b. Toewijzing De toewijzingsoperator is "=". Dit niet hetzelfde als "gelijk aan". De eigenlijke betekenis is dat de variabele links van het gelijkteken de waarde krijgt van de expressie rechts van het teken. De variabele wordt gesteld op een bepaalde waarde. Vergelijking Om variabelen met elkaar te vergelijken zijn er de volgende operatoren: $a == $b Gelijk aan Waar als $a is gelijk aan $b. $a === $b Identiek Waar als $a is gelijk aan $b, en ze bovendien van het zelfde type zijn. (alleen in PHP4) $a!= $b Niet gelijk aan Waar als $a is niet gelijk aan $b. $a!== $b Niet identiek Waar als $a is niet gelijk aan $b, of als ze niet van hetzelfde type zijn. (alleen PHP4) $a < $b Kleiner dan Waar als $a is kleiner dan $b. $a > $b Groter dan Waar als $a is groter dan $b. $a <= $b $a >= $b Kleiner of gelijk aan Groter of gelijk aan Waar als $a is kleiner of gelijk aan $b. Waar als $a is groter of gelijk aan $b. Incrementele/decrementele operatoren Waarden kunnen we automatisch laten toe of afnemen met het getal 1. Dit kan voor of na het gebruik van de variabele waar het op van toepassing is. Hieronder een overzicht. ++$a Pre-increment $a neemt toe met één, geeft $a. $a++ Post-increment Geeft de $a, en neemt dan toe met één. --$a Pre-decrement Vermindert $a met één, en geeft $a. $a-- Post-decrement Geeft $a, en vermindert $a met één.

Pagina 12 Basiscursus PHP Hier enkele voorbeelden: <?php echo "<h3>postincrement</h3>"; $a = 5; echo "Moet zijn 5: ". $a++. "<br>\n"; echo "Moet zijn 6: ". $a. "<br>\n"; echo "<h3>preincrement</h3>"; $a = 5; echo "Moet zijn 6: ". ++$a. "<br>\n"; echo "Moet zijn 6: ". $a. "<br>\n"; echo "<h3>postdecrement</h3>"; $a = 5; echo "Moet zijn 5: ". $a--. "<br>\n"; echo "Moet zijn 4: ". $a. "<br>\n"; echo "<h3>predecrement</h3>"; $a = 5; echo "Moet zijn 4: ". --$a. "<br>\n"; echo "Moet zijn 4: ". $a. "<br>\n";?> voorbeeld 19 Logische operatoren Logische vergelijkingen kunnen worden gemaakt met de volgende syntax: $a and $b AND Waar als zowel $a en $b waar zijn. $a or $b OR Waar als of $a of $b waar is. $a xor $b XOR Waar als of $a of $b waar is, maar niet beide.! $a NOT Waar als $a niet waar is. $a && $b AND Waar als zowel $a en $b waar zijn. $a $b OR Waar als of $a of $b waar is. Combinaties van NOT met AND of OR met andere woorden NAND en NOR kunnen uiteraard ook gemaakt worden bijvoorbeeld:!($a and $b) //als zowel $a en $b niet waar zijn een NAND dus. Voorbeeld 20 Voorrangsregels. Bij het gebruik van operatoren gelden bepaalde voorrangsregels waardoor ongeacht de genoteerde volgorde bewerkingen in een vaste volgorde zullen worden uitgevoerd. Voor de rekenkundige bewerkingen geld Meneer Van Dalen Wacht Op Antwoord.

Basiscursus PHP pagina 13 Als er bijvoorbeeld een expressie zou worden aangemaakt 1 + 5 * 3, dan zou het antwoord 16 en niet 18 zijn aangezien vermenigvuldigen (*) voor optellen (+) komt. Hieronder zie je een compleet overzicht van de voorrangsregels waarbij er voor de voorrang sprake is van een oplopende volgorde. Operator, or xor and print = += -= *= /=.= %= &= = ^= ~= <<= >>=? : && ^ & ==!= ===!== < <= > >= << >> + -. * / %! ~ ++ -- (int) (double) (string) (array) (object) @ [ new In deze cursus zullen niet alle operatoren worden besproken.

Pagina 14 Basiscursus PHP 8. Functies Met een functie kan een bij elkaar behorend stuk code worfden gegroepeerd tot een geheel. Hiermee breng je structuur aan in je script en voorkom je eventuele herhaalde stukken. Heb je de code nodig, dan roep het gewoon aan. Functies kunnen worden aangemaakt met de volgende syntax: function voorbeeld ($arg_1, $arg_2,..., $arg_n) { echo "Voorbeeldfunctie.\n"; return $fresult; voorbeeld 21 na het kernwoord function volgt de naam van de functie met tussen haakjes eventuele argumenten. Zijn er geen specifieke argumenten, dan wordt de naam gevolgd door enkel de haakjes. Na het sluitingshaakje volgen tussen accolades de expressies. Expressies binnen een functie kunnen uit elke geldige PHP-code bestaan. Het gebruik van het kernwoord return is optioneel. Met behulp van de argumenten kan informatie worden doorgegeven aan de functie. Dit kunnen zowel variabelen als constanten zijn. function Koffie ($soort = "cappucino") { return "Ik drink het liefst $soort.\n"; echo Koffie (); //geeft Ik drink het liefst cappucino. echo Koffie ("espresso"); //geeft Ik drink het liefst espresso. Nog een voorbeeld function kwadraat ($num) { return $num * $num; echo kwadraat (4); // geeft '16'. voorbeeld 22

Basiscursus PHP pagina 15 9. Classes Een CLASS is een verzameling van variabelen en functies. Hoe een CLASS wordt gedefinieerd wordt duidelijk gemaakt met het volgende voorbeeld. Het voorbeeld laats zien dat aan het object winkelwagen artikelen kunnen worden toegevoegd of verwijderd. <? class winkelwagen { var $items; // Items in het wagentje // voeg $num artikelen van $artnr toe. function toevoegen ($artnr, $num) { $this->items[$artnr] += $num; voorbeeld 23-1 // Neem $num artikelen van $artnr uit de winkelwagen function remove_item ($artnr, $num) { if ($this->items[$artnr] > $num) { $this->items[$artnr] -= $num; return true; else { return false;?> voorbeeld 23-2

Pagina 16 Basiscursus PHP 10. Controlestructuren Elk PHP script is opgebouwd uit een aantal statements. Een statement kan een toewijzing zijn, de aanroep van een functie, een voorwaardelijke expressie enzovoort. De regels eindigen doorgaans met een puntkomma. aanvullend daarop kunnen de regels worden gegroepeerd in groepen door deze te plaatsen tussen accolades. Een groep is daarmee expressie op zichzelf. Om de gegroepeerde statements op een geordende wijze af te handelen zijn er verschillende types om een controlestructuur aan te brengen. In het hierna volgende zullen enkele daarvan worden besproken. IF De IF constructie is één van de belangrijkste en meest gebruikte binnen scripts. Met IF kan een voorwaardelijke statement worden gerealiseerd. De syntax voor IF ziet er als volgt uit: if (voorwaarde) statement voorbeeld 24 de voorwaarde in de IF constructie wordt geëvalueerd en als de uitkomst WAAR is, zal de statement worden uitgevoerd. Bijvoorbeeld: if ($a > $b) print "a is groter dan b"; voorbeeld 25 als de waarde van $a inderdaad groter is dan die van $b, zal de regel a is groter dan b naar het document worden geschreven en anders niet. Het woord print heeft hier overigens dezelfde betekenis als het eerder gebruikte echo. Vaak genoeg zul je na de voorwaarde meerder zaken willen laten gebeuren. In dat geval plaats je serie van statements tussen accolades. Zie hiervoor het onderstaande voorbeeld. if ($a > $b) { print "a is groter dan b"; $b = $a; voorbeeld 26 In het voorbeeld hierboven, zal niet slecht een tekstregeltje naar het document worden geschreven, maar zal vervolgens de waarde van $b worden gewijzigd. Ten slotte kan over de IF nog worden opgemerkt dat deze constructie oneindig door kan worden genest. ELSE In veel gevallen zal je het niet wenselijk vinden om bij een NIET WAAR uitkomst van de IF constructie het te laten zoals het is, maar zal je willen dat er iets anders gaat gebeuren. In dat geval voeg je aan de IF constructie de ELSE toe. Met andere woorden wat moet er gebeuren als er niet aan de voorwaarde wordt voldaan? De syntax hiervoor is:

Basiscursus PHP pagina 17 If (voorwaarde) { Statement; else { statement; voorbeeld 27 stel dat het voorbeeld met de IF constructie moet worden uit gebreid met een regels die zegt a is kleiner dan of gelijk aan b als dit inderdaad het geval is, dan wordt de code daarvoor: if ($a > $b) { print "a is groter dan b"; else { print "a is kleiner dan of gelijk aan b"; voorbeeld 28 ELSEIF de voorgaande voorbeelden met IF en ELSE gingen uit van twee mogelijkheden, namelijk $a is groter dan $b of niet. Door ELSE en IF met elkaar te combineren, kunnen wij het aantal mogelijkheden echter oneindig uitbreiden. ELSEIF bouwt een nieuwe voorwaarde binnen de reeds bestaande voorwaarde in die in die volgorde wordt geëvalueerd. Stel dat we het laatste voorbeeld willen uitbreiden door de mogelijkheid dat $a gelijk is aan $b apart te laten vermelden, dan krijgen we het volgende: if ($a > $b) { print "a is groter dan b"; elseif ($a == $b) { print "a is gelijk aan b"; else { print "a is kleiner dan b"; voorbeeld 29 Merk op dat de code voor een dergelijke constructie altijd begint met IF en eindigt met ELSE. Daartussen kan een willekeurig aantal keer ELSEIF worden geplaatst. Als alternatief kun je in plaats van de verschillende statements tussen accolades te plaatsen, de IF, ELSE en de ELSEIF constructie ook beëindigen met ENDIF. De eerste accolade wordt hierbij vervangen door een dubbele punt. Het laatste voorbeeld zou er volgens deze methode dan zo uitzien: if ($a > $b): print "a is groter dan b"; elseif ($a == $b): print "a is gelijk aan b"; else: print "a is kleiner b"; endif voorbeeld 30

Pagina 18 Basiscursus PHP Overigens moet nog worden opgemerkt dat het is toegestaan om ELSEIF niet vast maar los van elkaar (ELSE IF) te gebruiken. WHILE De WHILE-lus is ongetwijfeld de meest simpele in vele programmeertalen. De WHILE geeft aan dat zolang er aan de voorwaarde wordt voldaan, PHP de statement moet blijven uitvoeren. De waarde van de voorwaardelijke expressie wordt telkenmale aan het begin van de lus gecontroleerd op WAAR of NIET WAAR. Wanneer de waarde niet langer WAAR is zal de uitvoering worden gestopt. In geval de waarde al bij de eerste keer NIET WAAR is, zal de statement niet één keer worden uitgevoerd. De syntax van de WHILE is haast voorspelbaar. while (voorwaarde) statement voorbeeld 31 Evenals bij de IF-constructie, kunnen er meerdere statements worden opgenomen in een WHILE. Ook een alternatieve syntax met ENDWHILE is mogelijk In het voorbeeld hieronder moet een de getallen 1 tot en met 10 worden weergegeven. // voorbeeld 1 $i = 1; while ($i <= 10) { print $i++; /* waarom kan hier geen ++$i worden gebruikt? */ // voorbeeld 2 Hetzelfde maar nu met de alternatieve syntax $i = 1; while ($i <= 10): print $i; $i++; endwhile; voorbeeld 32 DO WHILE DO WHILE lussen lijken op WHILE lussen met dien verstande dat de validiteit van de expressie pas na uitvoering van de statement wordt gecontroleerd. Indien een voorwaarde al meteen NIET WAAR oplevert, zal de statement toch nog worden uitgevoerd. Bij een WHILE-lus was dat niet het geval. Hieronder een voorbeeld van de DO WHILE waarbij er niet aan de voorwaarde voldaan. Het voorbeeld is standaard voor de DO WHILE syntax. Alternatieven zijn er niet. $i = 0; do { print $i; while ($i>0); //wat zal er worden weergegeven? voorbeeld 33

Basiscursus PHP pagina 19 FOR FOR-lussen zijn wat complexer dan de vorige controlestructuren. De syntax ziet er als volgt uit: for (expr1; expr2; expr3) statement voorbeeld 34 De eerste expressie (expr1) wordt onvoorwaardelijk uitgevoerd aan het begin van de lus. Aan het begin van elke iteratie wordt de tweede expressie gecontroleerd. Het zal hier gaan om een voorwaarde met als uitkomst WAAR of NIET WAAR. Als de expressie waar is, zullen de statements in de lus worden uitgevoerd en anders niet. De lus zal bij NIET WAAR meteen worden beëindigd. Aan het eind van elke iteratie wordt de laatste expressie (expr3) uitgevoerd. Hieronder een eenvoudig voorbeeld om de werking van een FOR-lus aan te tonen. Ook in dit voorbeeld gaat het om het weergeven van de getallen 1 tot en met 10. for ($i = 1; $i <= 10; $i++) { print $i; voorbeeld 35 Elk van de drie expressies kan indien gewenst weg gelaten worden. De puntkomma moet in dat geval echter wel blijven staan. Hier een variant op het voorgaande voorbeeld waarbij de tweede expressie is weggelaten. Om de lus toch te laten beëindigen als het getal 10 is bereikt, is er een IF-statement in de lus opgenomen als mede de opdracht break om het proces af te breken. for ($i = 1;;$i++) { if ($i > 10) { break; print $i; voorbeeld 36 Om aan te tonen dat zelfs alle drie expressies kunnen worden weggelaten volgt hier nog een ietwat overdreven voorbeeld. $i = 1; for (;;) { if ($i > 10) { break; print $i; $i++; voorbeeld 37 De variabele $i is voorafgaand aan de lus reeds op 1 gesteld, terwijl de tweede en de derde expressie als statements in de lus zijn geplaatst. Behalve het weglaten van expressies, is het ook mogelijk om een expressie uit meerdere statements te laten bestaan. In het voorbeeld voor het weergeven van de

Pagina 20 Basiscursus PHP getallen 1 tot en met 10, zou je uitgaande van het eerste voorbeeld reeds in de derde expressie de weergave opdracht kunnen opnemen. De code zou er dan als volgt uit zien. for ($i = 1; $i <= 10; print $i, $i++) ; voorbeeld 38 Let hierbij op dat de twee statements zijn gescheiden door een komma in plaats van de gebruikelijke puntkomma. PHP ondersteunt voor de FOR-lus ook de alternatieve syntax met ENDFOR. Ons eerste voorbeeld zou dan worden: for ($i = 1; $i <= 10; $i++) : print $i; endfor voorbeeld 39 SWITCH De SWITCH statement komt overeen met een serie op hetzelfde betrekking hebbende IF statements. In gevallen waarbij dezelfde variabele moet worden vergeleken met verschillende waarden, is het handiger om gebruik te maken van de SWITCH statement in plaats van een serie IF s. de volgende voorbeelden geven aan hoe je met SWITCH hetzelfde kan bereiken als met IF. // de variabele $i wordt met drie waarden vergeleken met behulp van een IF statement. if ($i == 0) { print "i is gelijk aan 0"; if ($i == 1) { print "i is gelijk aan 1"; if ($i == 2) { print "i is gelijk aan 2"; voorbeeld 40 // dezelfde controle maar nu met SWITCH. switch ($i) { case 0: print "i is gelijk aan 0"; break; case 1: print "i is gelijk aan 1"; break; case 2: print "i is gelijk aan 2"; break; voorbeeld 41 het gebruik van break is in dit voorbeeld beslist niet overbodig. SWITCH begint met de uitvoering van een instructie op het moment dat een CASE WAAR is. Hierna

Basiscursus PHP pagina 21 wordt echter niet gestopt maar worden alle volgende opdrachten uit gevoerd. Zou in het voorbeeld $i inderdaad gelijk zijn aan 0, dan zou niet alleen i is gelijk aan 0 worden weergegeven, maar ook i is gelijk aan 1 en i is gelijk aan 2. Als $i gelijk zijn aan 2, zou er wel slechts één regel verschijnen en wel omdat er geen volgende mogelijkheden zijn. De SWITCH heeft als voordeel dat hij slechts één keer wordt uitgevoerd, waardoor het een snellere methode is dan ELSEIF. Vergelijk de volgende voorbeelden met elkaar en het voordeel mag duidelijk zijn. // met een IF constructie nagaan of de variabele $i de waarde van 0, 1 of 2 heeft. if ($i < 3 $i >= 0) { print "i is kleiner dan 3 maar niet negatief"; elseif ($i == 3) { print "i is gelijk aan 3 "; else { print "i is niet gelijk aan 0, 1 of 3"; voorbeeld 42 // hetzelfde met een SWITCH constructie switch ($i) { case 0: case 1: case 2: print "i is kleiner dan 3 maar niet negatief"; break; case 3: print "i is gelijk aan 3"; default: print "i is niet gelijk aan 0, 1 of 3"; voorbeeld 43 voor het aangeven van een standaardwaarde is in het voorbeeld gebruik gemaakt van default dat wil zeggen alle waarden die niet specifiek zijn aangegeven. Overigens is SWITCH ook te gebruiken in combinatie met ENDSWITCH. Het is maar waar je eigen voorkeur naar uitgaat.