Kontrol-strukturer i PHP

Relaterede dokumenter
Arrays i PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 04. Feb 2009 af taskmgr I kategorien Programmering / PHP

I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.

Med register_globals = On får du automatisk adgang til en række variabelnavne i dit script.

At klippe en streng over på det mest hensigtsmæssige sted

Som sagt kræves der helst lidt viden om OOP hvis man virkelig vil lærer noget, og ikke bare lave copypaste

Upload af billeder/filer for nybegyndere Del. 2

I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal.

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

Regulære udtryk, 2. del

Database design for begyndere

Ratingsystem i PHP og MySQL

Loginsystem (med MySQL)

Start på javascript. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 03. Feb 2009 af webstuff I kategorien Programmering / JavaScript

Introduktion til funktioner, moduler og scopes i Python

Afsending af s vha. ASP

Introduktion til SQL queries

I mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online.

PHP Snippets. De små korte. Skrevet af Daniel Pedersen

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

Mircobit Kursus Lektion 3 (Du skal her vælge Lets Code Og nederst Microsoft Block Editor.)

Tagwall med Php & MySQL

PHP Pagination. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 01. May 2011 af dab93 I kategorien Programmering / Andre

Forelæsning Uge 2 Mandag

SESSION med PHP. En let begynderguide som kan føre dig ind i en verden af muligheder. Denne guide er oprindeligt udgivet på Eksperten.

Gæstebog med validering opbygget med MySQL

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen

Undtagelseshåndtering i C#

Programmering i C. Lektion oktober 2008

Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen...

I denne arktikle går jeg gennem Slet, Ret og Opret data i en MySQL database. der er også en lille del i den hvor den postere datanen ud i en løkke

Singleton pattern i Java

Koden i denne guide vil kun virke i Flash MX 2003 og MX ikke ældre versioner!

Visual Basic for begyndere

Uploade billeder eller andre filer ved hjælp af php og mysql

Database programmerings tips

Denne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS.

Python 3 kursus lektion 1:

Den forudsætter kendskab til XML og C# men ikke til brug af XML i C#.

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.

Arkitektur for begyndere

IT projekt person galleri

Dynamisk PHP design OPDATERET

Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java

Anvendelse af metoder - Programmering

Kapitel 3 Betinget logik i C#

Simpel upload af filer

Sådan skriver du artikler til Eksperten!

Denne artikel er en detaljeret gennemgag af det fundamentale i batchfiler til hjemmebrug :-) FEEL THE POWER! ;-)

Forelæsning Uge 2 Mandag

Kursus 02199: Programmering. Kontrol af programudførelsen. afsnit if (indkomst > ) topskat = (indkomst ) * 0.

Programmering I Java/C#

Programmering i C. Lektion september 2009

Programmering for begyndere Lektion 2. Opsamling mm

Programmering i C. Lektion september 2009

Forelæsning Uge 2 Mandag

I denne artikel vil jeg gennemgå hvordan en side for RSS "Live Bogmærke" kan se ud.

Programmering i C. Lektion november 2008

Tilfældige tal. Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge.

2) Det er let at være produktiv med Python, da Python som regel kun har mellem 67 og 80% færre linier end tilsvarende C eller Java kode.

Endnu mere om tilfældige tal

Noter til C# Programmering Iteration

Forelæsning Uge 2 Mandag

SWC eksamens-spørgsmål. Oversigt

Log ind med PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 09. May 2011 af dab93 I kategorien Programmering / Andre

Eksamens spørgsmål Software Construction. Objekter. Spørgsmål 1: Januar Giv en beskrivelse af Objekt-begrebet og deres brug

Hvad er Objekter - Programmering

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter Abstract

Klasse 1.4 Michael Jokil

Mozilla Firefox (tidligere Firebird): Fremhæve ord

Delphi - CrackMe og Keygen

Forskellige Java versioner

PHP guide af Daniel Pedersen

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med

Ekstra hastighed med array's i Excel-VBA

Jeg har i forbindelse med it og programmering designet og udviklet et it-produkt, som kan beregne rødder i en anden gradsligning.

Det er primært relevant for dem hvor der arbejdes på en gammel bærbar computer, som ikke har en stærk processer og nok ram, at gøre godt med.

16/04/12 50% 50% Waveform Chart Waveform Graph XY Graph Indicator Graph 33% 17% 88% 13%

Studiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen

Den forudsætter kendskab til XML og VB.NET men ikke til brug af XML i VB.NET.

Brugerdefineret menuer i Access

Start på Arduino og programmering

Singleton pattern i C#

Java Klasse nedarvninger

SQL for MySQL-begyndere

Interaktionsudvikling

HTML, PHP, SQL, webserver, hvad er hvad??

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4

Python programmering. Per Tøfting. MacFest

Logging i Java. Den forudsætter kendskab til Java og noget generel udviklings erfaring. Denne guide er oprindeligt udgivet på Eksperten.

Dokumentation af programmering i Python 2.75

I denne artikel vil vi bruge en User klasse som vi så vil gruppere på forskellige måder.

Sproget Rascal (v. 2)

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato:

Forelæsning Uge 2 Torsdag

MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere.

Håndtering af tekstoversættelse i flersprogsapplikationer

Send fra Java. Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende fra Java.

Transkript:

Denne guide er oprindeligt udgivet på Eksperten.dk Kontrol-strukturer i PHP Denne artikel gennemgår kontrolstrukturer i PHP. 'if', 'switch', 'while' og 'for' bliver gennemgået. Den forudsætter lidt grundlæggende kendskab til PHP. *Opdateret 7-10-04* Skrevet den 04. Feb 2009 af taskmgr I kategorien Programmering / PHP Update 7-10-04: URL'en i bunden er rettet. Update 30-08-04: Artiklen er nu gratis. Det samme gælder min artikel om arrays. Update 26-04-04: Tilføjet info omkring 'default' i switch() Kontrol-strukturer (blandt andet også kaldt "Control-s") er metoder til at styre eksekveringen af en applikations forskellige dele. Syntaksen for kontrol-strukturer kan sammenlignes med det regulære engelske sprog, og forståelsen kræver praktisk talt kun en smule logisk sans. Jeg vil her komme ind på nogle af de kontrol-strukturer der kan benyttes i PHP. 'if'-konstruktioner De hyppigst benyttede konstruktioner i PHP og programmering generelt, er baseret på 'if'-s. Navnet afspejler præcist formålet. Vi starter med syntaksen: //eksempel 1 if (expr) { //eksempel 2 if (expr) { else { //eksempel 3 if (expr1) { elseif (expr2) { else { De tre ovenstående eksempler er herunder beskrevet med en abstraktion på godt dansk:

//eksempel 1 hvis (dette udtryk er sandt) { //eksempel 2 hvis (dette udtryk er sandt) { ellers { //eksempel 3 hvis (dette udtryk er sandt) { ellers hvis (dette udtryk er sandt) { ellers { Vi kan nu bruge et eksempel fra hverdagen, hvor jeg vil ud og købe en bil: if (min_kapital > bilens_pris) { så køber jeg bilen med det samme elseif (banken_vil_laane_mig_pengene) { så låner jeg pengene og køber bilen else { så finder jeg et job Denne struktur kan i PHP skrives således: $min_kapital = 30000; $bilens_pris = 40000; $banken_vil_laane_mig_pengene = FALSE; if ($min_kapital > $bilens_pris) { echo "Jeg køber bilen"; elseif ($banken_vil_laane_mig_pengene) { echo "Jeg låner pengene"; echo "<br />\n"; echo "Jeg køber bilen"; else { echo "Jeg finder et job"; Ovenstående kontrol-struktur kan næppe bruges til noget i praksis, men det skulle give dig en

fornemmelse af hvad if-sætninger bruges til. 'switch'-konstruktioner Brugen af en switch-sætning kan sammenlignes med en serie af if-s der bruger det samme udtryk. Du vil måske sammenligne den samme variabel med mange forskellige værdier og eksekvere et forskelligt stykke kode, alt efter hvilken værdi variablen har. Dette kan naturligvis gøres med en serie af if og elseif, hvilket jeg efterfølgende vil vise, men du kan med fordel bruge switch i stedet. Det er både nemmere og mere overskueligt. Her er to eksempler som gør det samme - det ene med en serie af if og elseif og det andet med en switch. // ved brug af if og elseif: if($i == 1){ elseif($i == 2){ echo "i er lig med 2"; elseif($i == 3){ // ved brug af switch: switch($i){ case 1: case 2: echo "i er lig med 2"; case 3: Det er vigtigt at forstå hvordan en switch bliver eksekveret hvis man vil undgå fejl. Statements i en switchsætning bliver kun udført hvis der findes en 'case' der passer til det angivne udtryk ($i her). Altså - hvis du i ovenstående sætter $i til f.eks. 4, vil ingen af dem udføres. Hvis der derimod findes en case som passer til $i, så fortsætter PHP med at eksekvere s indtil slutningen af switch-sætningen, eller indtil den møder et 'break'. Hvis man derfor ikke tilføjer et break i slutningen af en case, så bliver de eventuelle efterfølgende cases også udført. Samme eksempel uden 'break': switch($i){ case 1: case 2:

echo "i er lig med 2"; case 3: Her vil PHP eksekvere alle tre s hvis $i er lig med 1. Hvis $i er lig med 2, vil kun 'case 2' og 'case 3' blive udført. Hertil kan man tilføje en særlig 'default' case. Statements i denne case vil blive udført hvis ingen af de andre cases passer: switch($i){ case 1: case 2: echo "i er lig med 2"; case 3: default: echo "i er forskellig fra 1, 2 og 3"; I ovenstående vil der udskrives: "i er lig med 1/2/3" hvis $i er lig med 1, 2 eller 3. Hvis $i ikke matcher en af de tre cases, vil s under 'default' blive udført. 'while'-loops Et loop er en sekvens af instruktioner som gentages indtil en bestemt betingelse er opfyldt. Loops er, ligesom if-konstruktioner, en fundamental del i PHP og programmering generelt. I et typisk loop bliver en proces udført, så som at hente data og modificere disse, indtil en betingelse ikke længere er opfyldt. Loops bliver ofte kaldt for 'løkker' på dansk. While-loops er forholdsvist simple. De beder PHP om at eksekvere de(t) (s) som er bygget ind i konstruktionen gentagelsesvist, så længe at while udtrykket er sandt. Udtrykkets værdi (om det er sandt eller falsk) tjekkes hver gang i begyndelsen af loopet, for at bestemme om det skal eksekveres endnu en gang. Hertil har jeg ligeledes lavet et par eksempler: // Den grundlæggende syntax: while (expr){ // En abstraktion på dansk:

så længe at (dette udtryk er sandt) { // Det første eksempel: $i = 1; while($i <= 5){ echo $i; $i++; Dette vil udskrive: "12345". Første gang løkken bliver kørt er udtrykket sandt, fordi $i er lig med 1 og derfor mindre eller lig med 5. Løkken fortsætter indtil $i er lig med 6 og derfor hverken er mindre eller lig med 5. // Eksempel 2: $array = array('a', 'b', 'c'); $i = 0; while($i < count($array)){ echo $array[$i]; $i++; I eksempel nr. 2 vil "abc" blive udskrevet. Her tjekkes der om $i er mindre end summen af elementer i et array ($array). I samme forbindelse bruger vi $i inde i løkken til at definere hvilken nøgles værdi der skal udskrives. 'for'-loops For-loops er en del mere komplekse, men kan sådan set betragtes som en sammenskrivning af mit første eksempel på en while-løkke. // Syntax: for (expr1; expr2; expr3){ Mit første eksempel på en while-løkke kan 'oversættes' til en for-løkke således:

for($i = 1; $i <= 5; $i++){ echo $i; // Igen bliver der udskrevet: "12345" Det første udtryk ($i = 1) bliver uden betingelser eksekveret én gang i starten af løkken. Før hver gentagelse bliver udtryk nr. 2 ($i <= 5) tjekket. Løkken bliver kørt igen hvis dette udtryk er sandt. I slutningen af hver gentagelse bliver det sidste udtryk ($i++) eksekveret. Lidt at slutte på Dette var så mit bud på en grundlæggende gennemgang af nogle vigtige kontrol-strukturer i PHP. Som med så meget andet, gælder det også her at man skal kaste sig ud i tingene hvis man vil lære noget. Derfor foreslår jeg (igen) at du prøver dig frem, evt. ud fra mine eksempler. PHP manualens afsnit om emnet kan findes på http://dk2.php.net/manual/en/language.control-structures.php Kommentar af otis d. 05. Oct 2005 1 God og beskrivende artikel Kommentar af minau d. 09. Oct 2004 2 Kommentar af webcreator d. 01. Jun 2004 3 En rigtig fin artikel. Bør som nævnt læses af enhver begynder. Udemærket at "Defaults" nu er beskrevet i afsnittet om switches. Faktisk har jeg selv siddet fast i en switch engang, fordi jeg ikke kendte til nødvendigheden af Break;. Så jeg har kun ros til overs for dit arbejde. Kommentar af qtax87 (nedlagt brugerprofil) d. 19. Apr 2004 4 Synes det er godt beskrevet, men som phpwiz siger ville det være smart at nævne om default, ellers "keep going!" Kommentar af alleykat d. 18. May 2004 5 God, basic gennemgang af de grundliggende php kontrolstrukturer, forklaret på ordentligt dansk. Overflødig for erfarne, men ABSOLUT en must-read for begyndere! Kommentar af jbob d. 10. May 2005 6 Glinmerende og overskueligt forklaret! At det er basic har da ikke noget med kvaliteten af artiklen at gøre. Det vil være det samme som at kritisere en børnebog for at være for simpel. Kommentar af phpwiz d. 16. Apr 2004 7

der er lidt mangler, bl.a. kunne du godt fortælle om muligheden for "default" i switch'es Kommentar af xalinx d. 25. Apr 2004 8 Meget basic