Differences

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

Link to this comparison view

amprog_09 [2018-02-15 08:15]
Anders Mosshäll created
amprog_09 [2018-02-15 08:18] (current)
Anders Mosshäll
Line 5: Line 5:
 <?php <?php
    
-/+<?php 
- * En funktion ​kan ha flera parametrar och kan +  
- * returnera ett värde. +// Defaultvärde ​kan anges för en parameter
- * +// Det används om inget annat skickas till funktionen. 
- * $tal1 och $tal2 är inte samma variabel som  +function ​thousands($tal = 1) { 
- * i huvudprogrammet fast de heter likadant.  +  ​return ​$tal*1000;
- * Blir en kopia av variablerna i huvudprogrammet+
- *+
-function ​summa($tal1, $tal2){ +
-  $summa = $tal1 + $tal2; +
-  $tal1 = 1000;  // $tal ändras bara i funktionen. +
-  $test = '​teststräng'; ​   // $test finns bara i funktionen +
-  echo $test . '<​br>';​ +
-  return $summa; ​  // Skickar tillbaka svaret.+
 } }
    
-/* +// & betyder att man skickar en referens istället för att 
- * En funktion kan vara utan parametrar och +// göra en kopia av värdetMan får ett nytt namn på samma 
- * behöver inte returnera någotDenna funktion +// variabel (samma minnesposition)Ändras värdet i funktionen 
- * skriver bara ut en rad med stjärnor+// så ändras det även i huvudprogrammet. 
- *+function ​backwards(&$tal){   
-function ​stars(){ +  ​$ental = $tal%10; ​  // % ger resten 
-  ​echo '************************<​br>'​;+  $tiotal = (int)($tal/​10); ​ // För att få heltalsdelen. 
 +  $tal = $tiotal + 10*$ental// Vänder på talet.
 } }
    
-/* +// Funktionen adderar $num till alla tal i arrayen. 
- * Denna funktion skriver ut lika många stjärnor +// I php får man en kopia av arrayen i funktionen. 
- som värdet på parametern $n+// (I många andra språk skickas arrayer alltid ​som referens.) 
- *+// Ändras arrayen i funktionen händer inget med den  
-function ​stars2($n){ +// i huvudprogrammet. 
-  $i = 0; +function ​array_add($arr1,$num){  
-  while($i < $n){ +   ​$i = 0; 
-    echo '​*'​+   ​while($i < count($arr1)){ 
- $i++; +     $arr1[$i] = $arr1[$i] + $num
-  +    $i++; 
-  // Ny rad skrivs ut när alla stjärnor +   ​
-  // är utskrivna. +   return $arr1; ​ // ​Returnerar en array.
-  echo '<​br>';  ​+
 } }
    
-/* +// I denna funktion skickas bara en referens till  
- * Funktionen returnerar true om talet är +// den array som finns i huvudprogrammet. Det blir 
- * jämnt och false om det är udda+// ett nytt namn till samma arrayNär arrayen ändras 
- *+// i funktionen ändras den även i huvudprogrammet. 
-function ​is_even($tal){ +function ​array_add2(&$arr,$num){ 
-  if ($tal%2 == 0){ +   ​$= 0
-    ​return true; +   ​while($i < count($arr)){ 
-  } else { +     $arr[$i] = $arr[$i] + $num
-    ​return false+    ​$i++
-   +   ​}
 } }
-  
-/*  
- * Har man många funktioner kan det vara 
- * bra att lägga dessa i en separat fil och 
- * göra dem tillgängliga med include. 
- */ 
-//​include('​functions.php'​);​ 
    
 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('​dallas'​) . '<​br>';​ 
  
-  +$tal1 = 18;  
-$tal1 = 5+echo '​thousands($tal1): ' ​thousands($tal1'<​br>'; ​ 
-$tal2 = 7; +echo '​thousands()' . thousands() ​. '<br><​br>';​
-// 12 5 skrivs ut, d.v.s. ​$tal1 ändras inte fast det +
-// 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 'tal1: ' ​. $tal1 . '<​br>';​ 
-echo $test . '<​br>';​+backwards($tal1);​ // Funktionen har en referensparameter
 +echo 'tal1 efter backwards: ' . $tal1 . '<​br>';​
    
-$= 4; +$arr1 array(1,3,4)
-$6; +$arr2 array_add($arr1,5)
-// Variablerna behöver inte ha samma namn som +echo '$arr1: ​'; 
-// i funktionen. 10 skrivs ut. +print_r($arr1); 
-echo summa($x$y'<br>'; +echo '<​br>';​
-  +
-// Går att skicka värden direkt. 18 skrivs ut. +
-$sum = summa(8,10); +
-echo $sum . '<​br>';​+
  
- +echo '​$arr2:​ '
-// En funktion måste inte ha paramentrar +print_r($arr2); 
-stars()+echo '<​br>'​;
- +
- +
-// Funktioner är bra om man vill göra samma sak +
-// på flera ställen i koden. +
-stars2(5); +
-stars2(10);​ +
-stars2(20);+
    
- +array_add2($arr1,10); 
-  +echo '$arr1: '; 
-// Alla jämna tal mellan 0 och 20 skrivs ut. +print_r($arr1);
-$i = 0; +
-while($i <= 20){ +
-  ​if(is_even($i) == true){ +
-    ​echo $i . ' ​'; +
-  } +
-  ​$i++; +
-}+
 echo '<​br>';​ echo '<​br>';​
    
 include('​foot.php'​);​ include('​foot.php'​);​
 +?>
 </​code>​ </​code>​