Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dvprog_11 [2020-02-06 12:04]
Daniel Viström
dvprog_11 [2020-05-07 13:27]
Daniel Viström
Line 1: Line 1:
 ====== Genomgång - Funktioner ====== ====== Genomgång - Funktioner ======
  
-En funktion är en del av ett program som anropas av den övriga koden för att utföra en viss uppgift. Funktionen kan anropas flera gånger från olika delar av programmet. När en funktion anropas körs koden i funktionen. Därefter "hoppar" det tillbaka till därifrån anropet gjordes. En funktion kan ta emot parametrar och returnera ett värde.+En funktion är en del av ett program som anropas av den övriga koden för att utföra en viss uppgift. Funktionen kan anropas flera gånger från olika delar av programmet. När en funktion anropas körs koden i funktionen. Därefter "hoppar" programmet tillbaka till därifrån anropet gjordes. En funktion kan ta emot parametrar och returnera ett värde. \\ 
 +\\ 
 +Funktionerna skriver vi längst upp i php-filen eller i en annan fil som inkluderas.
  
 ==== Exempel 1 ==== ==== Exempel 1 ====
Line 36: Line 38:
 // php har en massa färdiga funktioner, bl.a. för strängar. // php har en massa färdiga funktioner, bl.a. för strängar.
 // Värdet som returneras kan skrivas ut eller sparas i en variabel. // Värdet som returneras kan skrivas ut eller sparas i en variabel.
-echo strrev('.dlrow olleH') . '<br>';+echo strrev('.dlrow olleH') . '<br>';   //Direkt utskrift av det returnerade värdet.
 $text = 'dallas'; $text = 'dallas';
-$text2 = strrev($text);+$text2 = strrev($text);                // Här sparas det returnerade värdet i en variabel.
 echo $text2 . '<br>'; echo $text2 . '<br>';
  
 +stars();
 stars(); stars();
 // Funktioner är bra om man vill göra samma sak // Funktioner är bra om man vill göra samma sak
Line 64: Line 67:
  */  */
 function summa($tal1, $tal2){ function summa($tal1, $tal2){
-    $summa = $tal1 + $tal2;+    $summa = $tal1 + $tal2;     // Variabeln $summa finns bara i funktionen.
     $tal1 = 1000;  // $tal1 ändras bara i kopian som finns i funktionen.     $tal1 = 1000;  // $tal1 ändras bara i kopian som finns i funktionen.
-    $test = 'teststräng';    // $test finns bara i funktionen 
-    echo $test . '<br>'; 
     return $summa;   // Skickar tillbaka svaret.     return $summa;   // Skickar tillbaka svaret.
 } }
Line 86: Line 87:
 // Huvudprogram // Huvudprogram
 include 'head.php'; include 'head.php';
- 
-// php har en massa färdiga funktioner, bl.a. för strängar. 
-// Värdet som returneras kan skrivas ut eller 
-// sparas i en variabel. 
-echo strrev('.dlrow olleH') . '<br>';  //Direkt utskrift av det returnerade värdet. 
-$text = 'dallas'; 
-$text2 = strrev($text);  // Här sparas det returnerade värdet i en variabel. 
-echo $text2 . '<br>'; 
  
 $tal1 = 5; $tal1 = 5;
 $tal2 = 7; $tal2 = 7;
-// 12 5 skrivs ut, d.v.s. $tal1 ändras inte fast det +echo summa($tal1,$tal2) . '<br>';  // 12 skrivs ut.
-// förändras i funktionen. $tal1 är olika variabler +
-// i huvudprogrammet och i funktionen fast de har samma namn. +
-echo summa($tal1,$tal2) . ' ' . $tal1 . '<br>'; +
-// Blir felmeddelande$test finns bara i funktionen. +
-echo $test . '<br>';+
  
 $x = 4; $x = 4;
 $y = 6; $y = 6;
-// Variablerna behöver inte ha samma namn som +// Variablerna behöver inte ha samma namn som i funktionen.  
-// i funktionen. 10 skrivs ut+$sum = summa($x, $y)
-echo summa($x, $y) . '<br>';+echo $sum . '<br>';    // 10 skrivs ut.
  
 // Går att skicka värden direkt. 18 skrivs ut. // Går att skicka värden direkt. 18 skrivs ut.
-$sum = summa(8,10); +echo summa(8,10); 
-echo $sum . '<br>';+ 
 +echo $summa . '<br>'; 
 +// Blir felmeddelande. $summa finns bara i funktionen. 
 + 
 +echo $tal1 . '<br>';    
 +// Värdet har inte förändrats trots att funktionen har körts. 
 +//  $tal1 är olika variabler i huvudprogrammet och i  
 +// funktionen fast de har samma namn.
  
 // Alla jämna tal mellan 0 och 20 skrivs ut. // Alla jämna tal mellan 0 och 20 skrivs ut.
Line 126: Line 121:
 include 'foot.php'; include 'foot.php';
 </code> </code>
 +
 +
 +==== Exempel 3 ====
 +
 +Funktionen har i detta exempel lagts i en separat fil som heter 'array_first.php'.
 +<code php>
 +<?php
 +/*
 + * Funktion som returnerar en sträng med första
 + * tecknet från varje position i arrayen.
 + */
 +function array_first($arr){
 +    $answer = '';
 +    $i = 0;
 +    while($i < count($arr)){
 +        $answer = $answer . substr($arr[$i], 0, 1);
 +        $i++;
 +    }
 +    return $answer;
 +}
 +</code>
 +
 +Huvudprogram.
 +
 +<code php>
 +<?php
 +/*
 + * Funktioner kan läggas i en separat fil och
 + * göras tillgängliga med include.
 + */
 +include 'array_first.php';
 +
 +include 'head.php';
 +
 +$names = ['Helga', 'Emrik', 'Jean'];
 +// Direkt utskrift av det som returneras.
 +echo array_first($names) . '<br>';
 +
 +$animals = ['Panter','Apa', 'Räv', 'Kamel'];
 +// Det som returneras sparas i en variabel.
 +$svar = array_first($animals);
 +echo $svar . '<br>';
 +
 +include 'foot.php';
 +</code>
 +