Differences

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

Link to this comparison view

dvprog_12 [2019-03-25 08:58]
Daniel Viström
dvprog_12 [2022-07-18 13:20]
Line 1: Line 1:
-====== Genomgång 9 - Funktioner (referenser och default) ====== 
  
-<code php> 
-<?php 
- 
-// Defaultvärde kan anges för en parameter. 
-// Det används om inget annat skickas till funktionen. 
-function thousands($tal = 1) { 
-  return $tal*1000; 
-} 
- 
-// & betyder att man skickar en referens istället för att 
-// göra en kopia av värdet. Man får ett nytt namn på samma 
-// variabel (samma minnesposition). Ändras värdet i funktionen 
-// så ändras det även i huvudprogrammet. 
-function backwards(&$tal){   
-  $ental = $tal % 10;   // % ger resten 
-  $temp = (int)($tal / 10); // För att få heltalsdelen. 
-  $tiotal = $temp % 10; 
-  $tal = $tiotal + 10 * $ental; // Vänder på talet. 
-} 
- 
-// Funktionen adderar $num till alla tal i arrayen. 
-// I php får man en kopia av arrayen i funktionen. 
-// (I många andra språk skickas arrayer alltid som referens.) 
-// Ändras arrayen i funktionen händer inget med den  
-// i huvudprogrammet. 
-function arrayadd($arr, $num){  
-   $i = 0; 
-   while($i < count($arr)){ 
-     $arr[$i] = $arr[$i] + $num; 
- $i++; 
-   } 
-   return $arr;  // Returnerar en array. 
-} 
- 
-// I denna funktion skickas bara en referens till  
-// den array som finns i huvudprogrammet. Det blir 
-// ett nytt namn till samma array. När arrayen ändras 
-// i funktionen ändras den även i huvudprogrammet. 
-function arrayadd2(&$arr, $num){ 
-   $i = 0; 
-   while($i < count($arr)){ 
-     $arr[$i] = $arr[$i] + $num; 
-     $i++; 
-   } 
-} 
- 
-include('head.php'); 
-$tal1 = 18; 
-echo 'tal1: ' . $tal1 . '<br>'; 
-echo 'thousands($tal1): ' . thousands($tal1) . '<br>';  
-echo 'thousands(): ' . thousands() . '<br>'; 
- 
-echo 'tal1: ' . $tal1 . '<br>'; 
-backwards($tal1); 
-echo 'tal1 efter backwards: ' . $tal1 . '<br>'; 
- 
-$arr1 = [1,3,4]; 
-$arr2 = arrayadd($arr1, 5); 
-print_r($arr1); 
-echo ' $arr1 <br>'; 
-print_r($arr2); 
-echo ' $arr2 <br>'; 
- 
-arrayadd2($arr1, 10); 
-print_r($arr1); 
-echo ' $arr1 <br>'; 
- 
-include('foot.php'); 
- 
-/* 
-Följande skrivs ut när programmet körs: 
- 
-tal1: 18 
-thousands($tal1): 18000 
-thousands(): 1000 
-tal1: 18 
-tal1 efter backwards: 81 
-Array ( [0] => 1 [1] => 3 [2] => 4 ) $arr1  
-Array ( [0] => 6 [1] => 8 [2] => 9 ) $arr2  
-Array ( [0] => 11 [1] => 13 [2] => 14 ) $arr1  
- 
-*/ 
- 
-</code>