<?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 $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. // 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 array_add($arr1,$num){ $i = 0; while($i < count($arr1)){ $arr1[$i] = $arr1[$i] + $num; $i++; } return $arr1; // 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 array_add2(&$arr,$num){ $i = 0; while($i < count($arr)){ $arr[$i] = $arr[$i] + $num; $i++; } } include('head.php'); $tal1 = 18; echo 'thousands($tal1): ' . thousands($tal1) . '<br>'; echo 'thousands(): ' . thousands() . '<br><br>'; echo 'tal1: ' . $tal1 . '<br>'; backwards($tal1); // Funktionen har en referensparameter. echo 'tal1 efter backwards: ' . $tal1 . '<br>'; $arr1 = array(1,3,4); $arr2 = array_add($arr1,5); echo '$arr1: '; print_r($arr1); echo '<br>'; echo '$arr2: '; print_r($arr2); echo '<br>'; array_add2($arr1,10); echo '$arr1: '; print_r($arr1); echo '<br>'; include('foot.php'); ?>