1587 Server - Blandet miljø Webintegrator HF1 Functioner PHP Object orienteret Webintegrator HF1 © Mercantec 2014
Functioner Funktioner kan bruges hvis vi har noget kode vi gerne vil genanvende flere steder i programmet. Eksemplet herunder viser et simpelt funktionskald. <?php function sayHello(){ print("<p>Hello world</p>"); } sayHello(); ?> © Mercantec 2014
Funktioner med parametre Vi kan også vælge at overfører en eller flere parametre til funktionen. I dette tilfælde giver vi funktionen et navn og en fødselsdato hvorefter programmet beregner og udskriver alder. Bemærk at variablene $a og $b ændre navn når de overføres til funktionen sayHelloAge. function sayHelloAge($name,$birthday){ $currentyear = date("Y"); $birthyear = date("Y",$birthday); $age = $currentyear - $birthyear; printf("<p>Hello %s you are %u years old</p>",$name,$age); } $a = "Kurt"; $b = strtotime('10/16/2003'); sayHelloAge($a,$b); © Mercantec 2014
Return parametre Vi kan også lave en funktion som returnerer en parameter. Her vises funktionen calcAge der beregner aldre ud fra datoerne $birth og $now. Funktionen kaldes i sayHelloAge og det resultatet den returnerer gemmes i $age. function calcAge($birth){ $currentyear = date("Y"); $birthyear = date("Y",$birth); $age = $currentyear - $birthyear; return $age; } function sayHelloAge($name,$birthday){ $age = calcAge($birthday); printf("<p>Hello %s you are %u years old</p>",$name,$age); } $a = "Kurt"; $b = strtotime('10/16/2003'); sayHelloAge($a,$b); ?> © Mercantec 2014
Optional parameters Hvis man vil have en mulighed for at udelade fødselsdato kan man sætte den til default værdien null (eller en anden værdi). Nu kan man frit vælge om man ønsker at opgive fødselsdag. function calcAge($birth){ $currentyear = date("Y"); $birthyear = date("Y",$birth); $age = $currentyear - $birthyear; return $age; } function sayHelloAge($name,$birthday=null){ if (!is_null($birthday)){ $age = calcAge($birthday); printf("<p>Hello %s you are %u years old</p>",$name,$age); } else { printf("<p>Hello %s ",$name); } } $a = "Kurt"; $b = strtotime('10/16/2003'); sayHelloAge($a,$b); sayHelloAge("Jens"); © Mercantec 2014