1 / 24

Organisering av kode (Kapittel 5)

Organisering av kode (Kapittel 5). Mål. Forstå inkludering er og hvilken gevinst det gir Lære å utvikle egne funksjoner Forstå variablenes virkemåte. Hva er inkludering?. Vi bruker inkludering av filer hovedsaklig for: Gjennbruk av kode Enklere vedlikehold

malini
Télécharger la présentation

Organisering av kode (Kapittel 5)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Organisering av kode(Kapittel 5)

  2. Mål • Forstå inkludering er og hvilken gevinst det gir • Lære å utvikle egne funksjoner • Forstå variablenes virkemåte

  3. Hva er inkludering? • Vi bruker inkludering av filer hovedsaklig for: • Gjennbruk av kode • Enklere vedlikehold • Vanlig å dele opp ulike deler av et script i isolerte deler (topp, bunn, meny) • Inkludering gjøres med funksjonene: • include, require, include_once og require_once

  4. Eksempel på inkludering main.php topp.html meny.php bunn.html

  5. Legg filene dine i et hierarki • Du står helt fritt til å velge filstruktur selv • Finn deg en struktur du syns er fornuftig og liker og hold deg til den

  6. Eksempel på hierarki foret enkelt nettsted / config.php - Konfigurasjons-script index.php - Hovedside include/ topp.inc - Topptekst bunn.inc - Bunntekst meny.inc - Meny nyheter.html produkter.html bestilling/ index.php side2.php omoss.html kontaktskjema.html kontaktskjema.php

  7. Eksempel på struktur foren webapplikasjon / config/ - Konfigurasjonfiler default.ini - Standard konfigurasjon docs/ - Dokumentasjon lib/ - Bibliotek-kode sql/ - Database script www/ - Rotkatalog for script css/ - Stilark js/ - Javascript images/ - Bilder index.php - Hovedside for applikasjonen README - Kort om applikasjonen INSTALL - Installasjonsveiledning ChangeLog - Endringslogg (dagbok)

  8. Eksempel på inkludering variable.php: <?php $frukt = “pære”; $farge = “grønn”; ?> test.php: <?php echo “En $frukt er $farge”; // En er include “variabler.php”; echo “En $frukt er $farge”; // En pære er grønn ?>

  9. Typisk bruk av inkludering include/topp.inc: <html> <head><title>Dagbladet.no</title></head> <body> include/bunn.inc: </body> </html> nyheter.php: <?php include 'include/topp.inc'; ?> <h1>Hus seilte 700 meter</h1> <p>- og grunnstøtte ute i fjorden. Fikk berget hunden og katten.</p> <?php include 'include/bunn.inc'; ?>

  10. Egendefinerte funksjoner • Navngitt samling av kode • Brukes til å organisere og gjennbruke kode ved at de kan kjøres flere ganger fra ulike steder • Gjør scriptet ditt både mindre og enklere og forstå • Uten funksjoner er det tilnærmet umulig å skrive kode som kan vedlikeholdes på en enkel måte

  11. $a $b $c $a $b $resultat $resultat $c Egendefinerte funksjoner • En funksjoner tar imot ingen, en eller flere argumenter og kan produsere et resultat function function function

  12. Opprette egendefinerte funksjoner • Deklareres med nøkkelordet function • Må ha et unikt navn • Bruk store bokstaver eller understrek for å skille ord • Trenger ikke være deklarert før den taes i bruk <?php function navn() { // kropp } function navn($arg1, arg2) { // kropp } function legg_sammen($a, $b) { } function leggSammen($a, $b) { } ?>

  13. Eksempel på egendefinert funksjon <?php function add($a, $b) { return $a + $b; } $total = add(2, 2); echo $total; // 4 ?> <?php $total = add(2, 2); echo $total; // 4 function add($a, $b) { return $a + $b; } ?>

  14. Eksempel på funksjon for datovelger <?php function datovelger($navn, $fra, $til, $valg) { $valg = getdate($valg); $dag = "<select name=\"{$navn}_dag\">\n"; for($i=1; $i<=31; $i++) { $dag .= "\t<option value=\"$i\"".($valg['mday']==$i?'selected':'').">$i</option>\n"; } $dag .= "</select>\n"; $mnd = "<select name=\"{$navn}_mnd\">\n"; for($i=1; $i<=12; $i++) { $mnd .= "\t<option value=\"$i\"".($valg['mon']==$i?'selected':'').">$i</option>\n"; } $mnd .= "</select>\n"; $aar = "<select name=\"{$navn}_aar\">\n"; for($i=$fra; $i<=$til; $i++) { $aar .= "\t<option value=\"$i\"".($valg['year']==$i?'selected':'').">$i</option>\n"; } $aar .= "</select>\n"; return $dag.$mnd.$aar; } echo datovelger('test', 1970, 2006, time()); ?>

  15. Inkludering og funksjoner • Etterhvert som du lager funksjoner er det vanlig å samle de i et “funksjonsbibliotek” som kan inkluderes i scriptene dine functions.php: <?php function sum($a, $b) { return $a + $b; } function difference($a, $b) { return $a - $b; } ?> index.php: <?php include 'functions.php'; echo sum(2, 2); // 2 echo difference(4, 2); // 2 ?>

  16. Variablenes virkeområde og levetid • Virkeområde (variable scope) • Konteksten en variabel er definert i • Globale variabler (global scope) • Normalt eksisterer variabler så lenge scriptet kjører • Lokale variabler (local scope) • En variabel opprettet i en funksjon eksisterer bare i funksjonen og blir slettet når funksjonen er utført

  17. Eksempeler på virkemåte • Globale variabler vil også være definert i alle inkluderte filer <?php $a = 1; // global variabel include “fil.php”; function test() { echo $a; // lokal variabel } test(); // “” ?> fil.php: <?php echo $a; // 1 ?>

  18. global <?php $a = 1; $b = 2; function sum() { global $a, $b; $b += $a; } echo $b; // 2 sum(); echo $b; // 3 ?> • Brukes for å få tilgang til variabler som er eksisterer utenfor funksjonen • Merk: Konstanter er alltid tilgjengelig i funksjoner

  19. static <?php function nestePartall() { static $i = 0; $i += 2; return $i; } echo nestePartall(); // 2 echo nestePartall(); // 4 echo nestePartall(); // 6 ?> • Brukes til å beholde verdien på variabelen • Nyttig ved opptelling av verdier

  20. Valgfrie argumenter • Argumenter kan tilegnes en standard verdi i signaturen til funksjonen • Et valgfritt argument kan utelates ved kall på funksjonen • Alle valgfrie argumenter må ligge på slutten av signaturen <?php function navn($a, $b = 5) { // kropp } navn($arg1); navn($arg1, $arg2); ?>

  21. Eksempel på valgfritt argument test.php: <?php function wrap_html_tag($string, $tag = 'b') { return “<$tag>$string</tag>”; } $string = “Litt tekst”; echo wrap_html_tag($string); echo wrap_html_tag($string, 'i'); ?> Resultat: <b>Litt tekst</b> <i>Litt tekst</i>

  22. Overføring av referanser(pass-by-reference) • Brukes for å beholde endringer gjort på en variabel i en funksjon <?php function leggTil(&$a, $b) { $a += $b; } $a = 0; leggTil($a, 2); echo $a; // 2 leggTil($a, 2); echo $a; // 4 ?>

  23. Eksempel på overføring av referanser <?php function wrap_html_tag(&$string, $tag = 'b') { $string = “<$tag>$string</tag>” return $string; } $string = “Litt tekst”; echo wrap_html_tag($string); echo wrap_html_tag($string, 'i'); ?> Resultat: <b>Litt tekst</b> <b><i>Litt tekst</i></b>

  24. Dynamiske funksjonskall • En variabel kan brukes som funksjonsnavn ved et funksjonskall • Tips: Sjekk alltid om funksjonen faktisk eksisterer dersom det er mulighet for at den ikke gjør det <?php function a() { echo “Funksjon A”; } function b() { echo “Funksjon B”; } function c() { echo “Funksjon C”; } $funksjon = $_GET['funksjon']; if(function_exists($funksjon)) { $funksjon(); } else { echo “$funksjon eksisterer ikke”; } ?>

More Related