}?> <!DOCTYPE... <html xmlns="http://www.w3.org/1999/xhtml"> <head>... </head> <body> <p>nå skal vi printe hallo:</p> <?php //funksjonskall

Like dokumenter
<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen.

Webprogrammering høsten 2017

$i < 5 forsettelsesbetingelsen - false => Løkken slutter.

En enkel while-løkke. 1 of :28. 2 of :28. while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt

while-løkker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke

Et forsøk på definisjon

Et forsøk på definisjon

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Tilgjegelighet av XHTML-forms

Et forsøk på definisjon. Eksempel 1

while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke

Et forsøk på definisjon. Eksempel 1

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Verdier, variabler og forms

Kapittel 1 En oversikt over C-språket

$antall_maaneder =12; Variablene $pris og $antall_maaneder i eksemplet ovenfor har

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Når en bruker skriver sitt navn ("Ole") i et form-element med name="fornavn" som attributt. klikker på submit-knappen

1.2 Dynamiske, tjenerbaserte og interaktive nettsteder

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

Del 1 En oversikt over C-programmering

Klasser. Webprogrammering høsten Objekter. Eksempelklasser og -objekter. 2 of :56. 1 of :56

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Utførelse av programmer, metoder og synlighet av variabler i JSP

Løse reelle problemer

2 Om statiske variable/konstanter og statiske metoder.

lage og bruke funksjoner som tar argumenter lage og bruke funksjoner med returverdier forklare forskjellen mellom globale og lokale variabler

Gjennomgang prøveeksamen oppgave 1, 2, 4, 5, 7

Repetisjon Novice Videregående Python PDF

Introduksjon til beslutningsstrukturer

[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 07/ Vi holder orden på verdier med hjelp av variabler

I denne oppgaven skal vi repetere litt Python-syntaks, det er en god blanding av alle tingene du har lært i Python til nå.

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

Utvikling av dynamiske nettsteder med PHP og databaser, våren 2009

TDT4105 IT Grunnkurs Høst 2016

Informasjon Prøveeksamen i IN1000 høsten 2018

Løse reelle problemer

UNIVERSITETET I OSLO

Programmeringsspråket C

Øvingsforelesning 1 Python (TDT4110)

datatyper Hva er programmering? Variabler og Informasjonsteknologi 2 Kompetansesemål

Programmeringsspråket C Del 2

Programmeringsspråket C Del 2

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum

Eksamensoppgaver 2014

INF1000 : Forelesning 4

i=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

Forelesning inf Java 4

Aritmetiske operasjoner. Litt om forrige times øvelsesoppgaver

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.)

INF1000 Behandling av tekster

INF1000 Eksamen 2014 (modifisert)

Programmeringsspråket C Del 2

Informasjon Eksamen i IN1000 og IN1001 høsten a) 1 poeng. 1b) 1 poeng. Tid. Oppgavene. Tillatte hjelpemidler. 30. november kl. 14.

INF Ekstrainnlevering

Programmering i R. 6. mars 2004

Løse reelle problemer

Høgskoleni østfold EKSAMEN

Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder

YouTube-kanal ITGK. Læringsmål og pensum

TDT4110 IT Grunnkurs Høst 2015

2 Om statiske variable/konstanter og statiske metoder.

Python: Intro til funksjoner. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Finne ut om en løsning er helt riktig og korrigere ved behov

TDT4110 Informasjonsteknologi grunnkurs: Tema: Enkle funksjoner. - 3rd edition: Kapittel Professor Alf Inge Wang

Forelesning inf Java 5

Forelesning inf Java 5

Introduksjon til objektorientert programmering

Oppgavesettet består av 7 sider, inkludert denne forsiden. Kontroll& at oppgaven er komplett før du begynner å besvare spørsmålene.

Oppgaver uke 1: Løsningsforslag

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Informasjon Eksamen i IN1000 høsten 2017

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Kapittel 1. Datamaskiner og programmeringsspråk. 1.1 Programmering

Kanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen

UNIVERSITETET I OSLO

3 emner i dag! INF1000 Uke 5. Objekter og pekere. null. Litt om objekter, pekere og null Filer og easyio Litt mer om tekster

MER OM ARRAYER. INF1000: Forelesning 4. Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene:

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2017

INF1000: Forelesning 4. Mer om arrayer Metoder

for (int i=0; i<3; i++) { for (int j=0; j<5; j++) { System.out.print(i*j); System.out.println();

Norsk informatikkolympiade runde

Introduksjon til programmering og programmeringsspråk. Henrik Lieng Høgskolen i Oslo og Akershus

IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python

TDT4165 PROGRAMMING LANGUAGES. Exercise 01 Introduksjon til Oz

</html> </head> <form action= rtkst.php > <p> Fornavn? <input type= text name= fornavn <input type= submit />

Oppgave 1 Hva tror du følgende program skriver ut til terminalen? Diskuter med gruppen.

Læringsmål og pensum. Oversikt

TDT4110 IT Grunnkurs Høst 2016

TDT4110 IT Grunnkurs Høst 2016

Transkript:

Hver gang funksjonen printhallo kalles utføres instruksjonene spesifisert i den. [Kurssidene] [ ABI - fagsider bibin ] //funksjonskall printhallo(); //enda en gang printhallo(); Michael Preminger (michaelp@hio.no) 30/09-16 HALLO HALLO Byggestein så langt: variabler, betinget utføring, løkker: (for), while enkle arrayer I tillegg: innebygde funksjoner, slik som print() og count(). Funksjoner flere innebygde PHP-funksjoner fra PHP-biblioteket egendefinerte funksjoner funksjoner og hovedprogram En liten introduksjon Funksjon: et lite hjelpeprogram, med navn, som utfører en bestemt oppgave. Ser vekselvis på egendefinerte og innebygde funksjoner. En funksjon: en sekvens av instruksjoner som har et navn. //funksjonsdefinisjon function printhallo(){ print("<p>hallo</p>"); } Å skrive en funksjon er det samme som å lage en ny "privat" PHP-kommando til eget bruk. Eksempel 1 : Funksjonsdefinisjon og funksjonskall i en PHP-fil //funksjonsdefinisjon function printhallo(){ print("<p>hallo</p>"); } <!DOCTYPE... <html xmlns="http://www.w3.org/1999/xhtml"> <head>... </head> <body> <p>nå skal vi printe hallo:</p> //funksjonskall printhallo(); </body> </html> Nå skal vi printe hallo: HALLO printhallo() er en egendefinert funksjon. vi skrev den selv den er "vår private" utvidelse av PHP-språket Navnet (her printhallo) kan brukes til å kalle funksjonen. 1 of 16 30.09.2016 12:24 2 of 16 30.09.2016 12:24

Innebygde: forhåndsskrevet av andre, alle PHP-programmerere kan bruke. Mange av PHP-instruksjonene vi bruker ofte, er "innebygde funksjoner" "noen" har skrevet dem og plassert dem i et "bibliotek" utfører oppgaver de fleste programmerere trenger ofte IKKE en del av kjernespråket". "kjernespråket": if, else, while, for og noen få andre kodeord Innebygde funksjoner: print,count og mange mange andre Egendefinerte funksjoner: for å svare på spesifikke behov Vi kan definere våre egne funksjoner for å "pakke inn" sekvenser av instruksjoner vi bruker ofte og kalle disse hver gang vi trenger å utføre de dele opp sammensatte problemer inn i oversiktlige deloppgaver (en funksjon utfører en slik deloppgave) strukturere våre programmer slik at de blir leselig for oss selv og andre printhallo (): egendefinert funksjon Eksempel 2 : funksjonen print Vi kjenner print. print har en parameter (som skrives til nettleservinduet). Nedenfor er direkteverdien "Dette er et enkelt program" et argument - en realisering av parameteret. print("dette er et enkelt program"); Eksempel 3 : funksjonen count (også kjent) count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen. $byer=array("oslo", "Bergen", "Trondheim", "Stavanger", "Kristiansand"); $antallbyer = count($byer); print ("<p>$antallbyer byer</p>") 5 byer bare handing (gjør nøyaktig det samme hver gang den kalles (printhallo) funksjoner med parametre som spesifiserer handlingen funksjoner som returnerer verdier Parametre og argumenter En parameter er en variabel som spesifiserer funksjonen. Et argument er en variabel eller verdi som angir verdien på en parameter i et bestemt kall. (Kommer tilbake til dette. ) 3 of 16 30.09.2016 12:24 4 of 16 30.09.2016 12:24

Eksempel 4 (enkel egendefinert funksjon -uten parametre) Vi skriver egendefinerte funksjoner når vi identifiserer en oppgave som gjøres ofte strukturere programmet mao: ganske ofte. En sekvens av instruksjoner som har et navn. pakker instruksjonene inn i en blokk gir funksjonen et navn function funksjonsnavn($parameter1, $parameter2... ){ } //instruksjoner plasserer funksjonen et sted i programkoden (for eksempel øverst) kaller den for å utføre handlingen spesifisert med instruksjonene funksjonsnavn($argument1, $argument2... ); Kan ingen -- eller flere -- parametre. argumenter for å "fylle" parametrene med verdier ved kall. Jeg har definert funksjonen skrivopphavsrett(). Denne ligner på printhallo() vi skrev tidligere. Når den kalles, skriver den en fast tekststreng i en HTML-fil, en copyright seksjon. 1. 2. function skrivopphavsrett(){ 3. print('<p class="bakgrunn" > Denne filen er beskyttet av opphavsrett. Dersom du ønsker å kopiere 4. fra den eller bruke den til andre formål enn personlig bruk, må du 5. kontakte Michael Preminger.</p> '); 6. } //slutt funksjonsdefinisjon 7. 8. <!DOCTYPE... 9. <html xmlns="http://www.w3.org/1999/xhtml"> 10. <head>... 11. </head> 12. <body > 13. <p>dette er et meget enkelt dokument, med bare en linjes innhold. </p> 14. 15. skrivopphavsrett(); 16. 17. </body> 18. </html> Dette er et meget enkelt dokument, med bare en linjes innhold. Denne filen er beskyttet av opphavsrett. Dersom du ønsker å kopiere fra den eller bruke den til andre formål enn personlig bruk, må du kontakte Michael Preminger. Linje 2-6 utgjør funksjonsdefinisjonen. På linje 13 skrives et fast avsnitt. På linje 15 blir funksjonen kalt, og instruksjonssekvensen i den utført. 5 of 16 30.09.2016 12:24 6 of 16 30.09.2016 12:24

Eksempel 6: printinvertertform($fornavn, $etternavn) Innebygde funksjoner som har parametre (og tar argumenter) print($argument) skriver ut (verdien til) sitt argument til nettleseren. count($argument) "måler" antall innførsler på sitt argument. Begge disse funksjoner er programmert med parametre Egendefinerte funksjoner med parametre Eksempel 5: skrivopphavsrett($navn) Vi definerer og kaller en funksjon som skal hete skrivopphavsrett($navn). Vi bygger på funksjonen skrivoppgavsrett() fra forrige eksempel. Parameteren $navn gjør funksjonen mer anvendelig. Hvorfor? 1. 2. function skrivopphavsrett($navn){ 3. print("<p> Denne filen er beskyttet av opphavsrett. Dersom du ønsker å kopiere 4. fra den eller bruke den til andre formål enn personlig bruk, 5. må du kontakte $navn.</p> "); 6. } //slutt funksjonsdefinisjon 7. 8. <!DOCTYPE... 9. <html xmlns="http://www.w3.org/1999/xhtml"> 10. <head>... 11. </head> 12. <body > 12. <p>dette er et meget enkelt dokument, med bare en linjes innhold. </p> 13. 14. skrivopphavsrett("jens Olsen"); 15. 16. </body> 17. </html> Et lite program som definerer en funksjon og kaller den 1. 2. function printinvertertform( $fornavn, $etternavn ){ 3. print("<p>$etternavn, $fornavn</p>"); 4. } //slutt funksjonsdefinisjon 5. 6. <p>i det følgende skrives to navn i invertert form: </p> 7. 8. $fnavn="michael"; 9. $enavn="preminger"; 10. 11. //kaller funksjonen 12. printinvertertform($fnavn, $enavn); 13. printinvertertform("jens", "Olsen"); 14. På Linje 2 til 4 defineres funksjonen. På Linje 12 kalles funksjonen med to variabler som argumenter. På linje 13 kalles funksjonen enda en gang, denne gang med to faste strenger som argumenter. $fornavn og $etternavn er parametre. $fnavn og $enavn er argumenter. Samme gjelder "Jens" og "Olsen". Rekkefølgen på parametrene bestemmer hvilke argument mappes til hvilken parameter. Programmet ovenfor skriver ut: I det følgende skrives to navn i invertert form Preminger, Michael Olsen, Jens Dette er et meget enkelt dokument, med bare en linjes innhold. Denne filen er beskyttet av opphavsrett. Dersom du ønsker å kopiere fra den eller bruke den til andre formål enn personlig bruk, må du kontakte Jens Olsen. I dette eksemplet er $navn (linje 2) parameter "Jens Olsen" (linje 14) argument Parameteren gjør at funksjonen kan brukes av forskjellige opphavspersoner dermed gir økt fleksibilitet referansen $navn på linje 5,, gjør at argumentverdien (i vårt tilfelle "Ole Olsen"), blir skrevet til nettleseren. 7 of 16 30.09.2016 12:24 8 of 16 30.09.2016 12:24

Egendefinerte funksjoner med returverdi kan illustreres med hjelp av en drikkeautomat: De tar imot argumenter: pengebeløp og produktvalg, gir tilbake en kopp med innhold (og mengde) som tilsvarer argumentverdiene. En funksjon med en returverdi produserer en verdi mens den kjører. Returverdien kan hentes i en returvariabel. En funksjon med en returverdi kan kalles slik: $resultat=funksjon($argument1, $argument2...); her er $resultat returvariabelen. Noen flere innebygde funksjoner med returverdi I de neste eksemplene hopper jeg over og foran og bak eksemplene, for å spare plass og papir. Eksemplene 7-10: Flere innebygde funksjoner De fleste innebygde funksjoner har returverdier. Noen funksjoner produserer en tekststreng og returnerer denne. Eksempel: 7. funksjonen date: $klokkestreng=date("g\.i\.s"); print("klokkeslett= $klokkestreng"); klokkeslett= 12.24.11 Andre funksjoner produserer tall som sine returverdier. 8. strlen(argument) beregner lengden ( antall tegn) på tekststreng-argumentet: $lengde=strlen("michael"); print( $lengde); Eksempel 11: Funksjonen printinvertertform gjøres om til en funksjon som returnerer en streng istedenfor å printe den. 1. 2. function returnerinvertertform( $fornavn, $etternavn ){ 3. $returstreng="$etternavn, $fornavn"; 4. return $returstreng; 5. } //slutt funksjonsdefinisjon 6. 7. <p>i det følgende skrives 2 navn i invertert form: </p> 8. 9. $fnavn1="michael"; 10. $enavn1="preminger"; 11. 12. //kaller funksjonen 13. $invertertstreng1 = returnerinvertertform($fnavn1, $enavn1); 14. $invertertstreng2 = returnerinvertertform("jens", "Olsen"); 15. print ("invertertstreng1: $invertertstreng1; invertertstreng2: $invertertstreng2") ; 16. skriver ut: invertertstreng1: Preminger, Michael; invertertstreng2: Olsen, Jens Ordet "return" på linje 4 har følgende rolle: funksjonen avgir verdien i angitt variabel til programmet som kalte den funksjonen avsluttes, og programmet kjører videre, utstyrt med den nye verdien. Etter at funksjonen har kjørt (linjer 13 og 14), har variablene $invertertstreng1 og $invertertstreng2 hhv. verdiene "Preminger, Michael" og "Olsen, Jens". 7 9. Funksjonen abs(argument) tar et tallargument, og returnerer dets absolutte verdi. abs(-5) returnerer 5. Eksempel: $tall=-5; $absverdi=abs($tall); print ("absoluttverdien av $tall er $absverdi"); 10. absoluttverdien av -5 er 5 Kan også legges direkte i et uttrykk. Eksempel: $tall=-5; $absverdi=abs($tall); $sum=abs($tall) + 6; print ("summen er $sum"); summen er 11 9 of 16 30.09.2016 12:24 10 of 16 30.09.2016 12:24

Eksempel 12: funksjonen minstav(arg1, arg2) finner og returnerer det minste av to tall 1. function minstav($tall1, $tall2){ 2. if ($tall1<$tall2){ 3. return $tall1; 4. }else { 5. return $tall2; 6. } 7. } //end function 8. 9. //bruk av funksjonen: 10. $t1=3; 11. $t2=5; 12. $minst=minstav($t1, $t2); 13. print("fant ut at $minst er minst av $t1 og $t2"); skriver ut: fant ut at 3 er minst av 3 og 5 Ordet "return" på linje 3 og 5 har samme rolle som i forrige eksempel: funksjonen avgir verdien i angitt variabel til programmet som kalte den funksjonen avsluttes, og programmet som kalte den kjører videre, utstyrt med den nye verdien. Etter at funksjonen har kjørt (linje 12), har returvariabelen, $minst, verdien 3 www.php.net - dokumentasjon på utallige innebygde funksjoner Å programmere i PHP er i stor grad å benytte innebygde funksjoner å programmere sine egne (egendefinerte) funksjoner og benytte disse egendefinerte funksjoner benytter (så klart) også innebygde funksjoner. Informasjon om alle innebygde funksjoner finnes på nettstedet php.net. Der er dokumentasjon av alle innebygde funksjoner et tastetrykk unna. Det er viktig å kunne lese funksjonsdokumentasjon. Eksempel 13: (en del av) Dokumentasjonen av print-funksjonen: print (PHP 3, PHP 4, PHP 5) print -- Output a string Description int print ( string $arg ) Outputs arg. Returns 1. Always int print (string $arg) (string $arg) betyr at funksjonen tar et argument som den tolker som en tekststreng. int betyr at funksjonen returnerer et tall ( "returverdien"). Dette er funksjonens formelle resultat. For print sin del pleier vi å ignorere returverdien. Eksempel 14: Dokumentasjon på og bruk av strlen-funksjonen: strlen (PHP 3, PHP 4, PHP 5) strlen -- Get string length Description int strlen ( string $string ) Returns the length of the given string. int strlen (string $string) betyr at funksjonen tar en variabel (eller direkteverdi) av type tekststreng som argument, og returnerer en verdi av type heltall (lengden, eller antallet karakterer i strengen). Verdien som returneres kan legges i en variabel. Sistnevnte kan, for eksempel printes. $lengde=strlen("michael"); print( $lengde ) ; 7 Dokumentasjon på kjente innebygde funksjoner print count Dokumentasjonen skal gi oss nok opplysninger om funksjonen slik at vi kan bruke den slik den er ment brukt. 11 of 16 30.09.2016 12:24 12 of 16 30.09.2016 12:24

Eksempel 15: Dokumentasjonen av count-funksjonen: Eksempel 17: en PHP-bibliotekfil med én funksjon count ( PHP 4, PHP 5) count -- Count elements in an array, or properties in an object Description int count ( mixed $var [, int $mode] ) Returns the number of elements in var, which is typically an array, since anything else will have one element.... int count (mixed $var [, int $mode]) mixed $var betyr at funksjonen kan ta alle mulige typer variabler som første argument, int $mode betyr at funksjonen returnerer en verdi av type heltall (lengden, eller antallet innførsler i arrayen). Denne kan vi printe (eller bruke på annen måte) $byer=array("oslo", "Bergen", "Trondheim", "Stavanger", "Kristiansand"); $antallbyer = count($byer); print ("<p>$antallbyer byer</p>") 5 byer [, int $mode] betyr at funksjonen har en valgfri parameter (skarpe klammer står ofte for valgfrihet), som modifiserer dens oppførsel. Denne ser vi som oftest bort fra når det gjelder count. Et program er et tre av funksjonskall Filen funksjoner.inc.php inneholder (foreløpig) bare én funksjon, som kan brukes flere steder. Filen mitt_program.php inneholder et program som bruker denne funksjonen ved å inkludere funksjoner.inc.php function minstav($tall1, $tall2){ if ($tall1<$tall2){ return $tall1; }else{ return $tall2; } } //end function minstav filen funksjoner.inc.php 1. 2. include 'funksjoner.inc.php'; 3. //Nå er funksjonen minstav tilgjengelig, og kan brukes: 4. $t1=3; 5. $t2=5; 6. $minst=minstav($t1, $t2); 7. print("fant ut at $minst er minst av $t1 og $t2\n"); 8. filen mitt_program.php Instruksjonen "include" på linje 2 gjør filen funksjoner.inc.php og alle funksjoner i den (foreløpig bare én) tilgjengelig for vårt program. Linje 6 kaller funksjonen på samme måte som i det forrige eksemplet. Samme fil kan inkluderes av flere programmer. En slik fil kalles ofte en bibliotekfil. Et funksjonsbibliotek kan gjerne inneholde flere slike filer, som hver inneholder et antall funksjoner som hører naturlig sammen. Et program er gjerne organisert slik at mellom start og slutt skjer instruksjonene én etter én - én instruksjon av gangen. Ofte vil enkeltinstruksjonene, sett fra programmet, være kall til funksjoner, enten innebygde eller egendefinerte. Enhver funksjon kaller så gjerne andre funksjoner. Vi får en tre-struktur av funksjoner som kaller funksjoner osv. De egendefinerte funksjonene kan enten defineres i samme fil som programmet, eller i separate filer Skrive funksjoner i egne filer (funksjonsbibliotek) En funksjon vi skriver kan brukes i mange sammenhenger, og ikke bare i programmet det ble skrevet for. PHP gir oss mulighet til å skrive funksjoner i egne filer, som vi kan deretter bruke i forskjellige programmer. 13 of 16 30.09.2016 12:24 14 of 16 30.09.2016 12:24

Eksempel 18: Here-Dokument "print"-instruksjonen brukes ofte til å skrive én linje av gangen: print ("mitt navn er $fornavn\n"); Skal vi skrive flere linjer kan det ofte være ugreitt å bruke den vanlige "print"-syntaksen. Da er "here-dokument" et alternativ. Med "here-dokument" setter vi det som skal skrives ut mellom to forekomster av et markeringsord. markeringsordet er en hvilken som helst tegnkombinasjon. "here-dokumentet" tillater oss å skrive flere sammenhengende linjer til nettleseren, samtidig som vi slipper anførselstegn og parenteser foran og bak strengene våre linjeskifter blir respektert (i kildekoden) "here"-dokumentet tolker også variabler (se for eksempel $variabel i følgende eksempel 1. 2. $variabel="michael"; 3. print <<<PRINTSLUTT 4. <p> 5. Dette er en utskrift produsert 6. med hjelp av språket PHP. 7. Vi bruker here-document-metoden for å skrive flere linjer til 8. nettleseren. Kildevisningen følger linjeskiftene i HERE-dokument. 9. Men for å få linjeskiftene i Nettleseren, må vi bruke linjeskift, 10. eller avsnittsmerke. 11. </p> 12. Here-dokumentet tolker variabler. For eksempel: Mitt navn er $variabel. 13.PRINTSLUTT; 14. Dette er en utskrift produsert med hjelp av språket PHP. Vi bruker here-document-metoden for å skrive flere linjer til nettleseren. Kildevisningen følger linjeskiftene i HERE-dokument. Men for å få linjeskiftene i Nettleseren, må vi bruke linjeskift, eller avsnittsmerke. Here-dokumentet toker variabler. For eksempel: Mitt navn er Michael. Viktig: Denne konstruksjonen er teknisk litt sårbar. To ting som er viktig å passe på er: markeringsordet (i eksemplet over: PRINTSLUTT på linje 3 og linje 13) må ikke etterfølges av noen mellomrom markeringsordet (linje 13) må stå "helt inn til veggen", uten mellomrom eller tab foran Det er flere tekstoperasjoner som kan bruke denne formen, for eksempel 1. 2. $variabel=<<<varslutt Michael VARSLUTT; 3. print <<<PRINTSLUTT 4. <p> 5. Dette er en utskrift produsert 6. med hjelp av språket PHP. 7. Vi bruker here-document-metoden for å skrive flere linjer til 8. nettleseren. Kildevisningen følger linjeskiftene i HERE-dokument. 9. Men for å få linjeskiftene i Nettleseren, må vi bruke linjeskift, 10. eller avsnittsmerke. 11. </p> 12. Here-dokumentet tolker variabler. For eksempel: Mitt navn er $variabel. 13.PRINTSLUTT; 14. Sist oppdatert 30/09-16 av Michael Preminger, michael.preminger@jbi.hio.no 15 of 16 30.09.2016 12:24 16 of 16 30.09.2016 12:24