Tutorials
Wat zijn functies en hoe werken functies
Uitleg over functies. Wat functies nou precies zijn, wat je er mee kunt en hoe ze werken.
Pagina 1
Functies algemeen
In deze tutorial zal ik je laten lezen wat functies nou precies zijn en hoe ze werken.
Functies is een code die slechts 1 keer gemaakt hoeft te worden en meerdere malen in je programma gebruikt kan worden. Je kunt 1 of meerdere argumenten in een functie zetten het het weergeeft uiteindelijk een waarde. Code die je vaak gebruikt hoef je nog maar 1 keer te programmeren en kun je aanroepen in de rest van het programma.
Door een functie te schrijven bespaar je tijd en verklein je de kans op bugs.
Hoe werken functies?
Functies worden gemaakt door de statement function. Als voorbeeld, een wiskunde functie.
<?
// geef de functie een naam
function wiskunde($num)
{
return $num * $num * $num; // toont $num tot de derde macht
}
// roep de functie aan
echo (wiskunde(6)); // toont 216
// het werk zo
function functie_naam(parameters)
{
inhoud van functie
}
?>
De naam van de functie (in dit geval "wiskunde") komt na de statement function en de parameters (als er meer zijn dan 1) worden onderscheiden door komma's. De inhoud van de functie, die hierna volgt, moet tussen acculades staan. Om een functie aan te roepen, roep dan de naam van de functie op, gevolgd met de parameter(s).
Functies is een code die slechts 1 keer gemaakt hoeft te worden en meerdere malen in je programma gebruikt kan worden. Je kunt 1 of meerdere argumenten in een functie zetten het het weergeeft uiteindelijk een waarde. Code die je vaak gebruikt hoef je nog maar 1 keer te programmeren en kun je aanroepen in de rest van het programma.
Door een functie te schrijven bespaar je tijd en verklein je de kans op bugs.
Hoe werken functies?
Functies worden gemaakt door de statement function. Als voorbeeld, een wiskunde functie.
<?
// geef de functie een naam
function wiskunde($num)
{
return $num * $num * $num; // toont $num tot de derde macht
}
// roep de functie aan
echo (wiskunde(6)); // toont 216
// het werk zo
function functie_naam(parameters)
{
inhoud van functie
}
?>
De naam van de functie (in dit geval "wiskunde") komt na de statement function en de parameters (als er meer zijn dan 1) worden onderscheiden door komma's. De inhoud van de functie, die hierna volgt, moet tussen acculades staan. Om een functie aan te roepen, roep dan de naam van de functie op, gevolgd met de parameter(s).
Pagina 2
Functies met Javascript
De functie "wiskunde" (hierboven) gebruikt return om het resultaat te weergeven. Ik geef je nu een voorbeeld die geen return gebruikt.
<?
// maak een JavaScript alert gebruikmakend van $bericht
function js_alert($bericht)
{
echo (
"\n<SCRIPT LANGUAGE='JavaScript'>\n" .
" <!-- \n" .
" alert (\"$bericht\");\n" .
" // --> \n" .
"</SCRIPT>\n"
);
}
// roep de functie aan
js_alert("Het paswoord wat je hebt ingevoerd, is onjuist!");
?>
Het is ook mogelijk om return te gebruiken om de functie stop te zetten, indien er geen inhoud beschikbaar is. Beneden de js_alert aangepast. De aangepaste functie js_alert zal nu stop worden gezet indien er geen inhoud in $bericht zit.
<?
// maak een JavaScript alert gebruikmakend van $bericht
function js_alert($bericht)
{
// de nieuwe regel, kijkt of $bericht leeg is, en stopt het script als dit het geval is
if ($bericht == "")
return; // stop het script
echo (
"\n<SCRIPT LANGUAGE='JavaScript'>\n" .
" <!-- \n" .
" alert (\"$bericht\");\n" .
" // --> \n" .
"</SCRIPT>\n"
);
}
// roep de functie aan
js_alert("Het paswoord wat je hebt ingevoerd, is onjuist!"); // dit roept de functie aan
js_alert(""); // dit roept ook de functie aan
// maar er zal niets gebeuren omdat er geen inhoud beschikbaar is
?>
Nu we deze functie hebben, kunnen we er gelijk een functie maken, die kijkt of de velden van een formulier wel een inhoud hebben. Dit is bijvoorbeeld handig bij registratie-, contact formulieren etc..
<?
function formulier($veld)
{
// we gaan er van uit dat de naam,
// het email adres en
// het bericht gedefineerd zijn in het formulier
if ($naam == "")
js_alert("De naam is een verplicht veld!");
elseif ($email == "")
js_alert("Het email adres is een verplicht veld!");
elseif ($bericht == "")
js_alert("Het bericht is een verplicht veld!");
}
// roep de functie aan
formulier($naam);
formulier($email);
formulier($bericht);
?>
<?
// maak een JavaScript alert gebruikmakend van $bericht
function js_alert($bericht)
{
echo (
"\n<SCRIPT LANGUAGE='JavaScript'>\n" .
" <!-- \n" .
" alert (\"$bericht\");\n" .
" // --> \n" .
"</SCRIPT>\n"
);
}
// roep de functie aan
js_alert("Het paswoord wat je hebt ingevoerd, is onjuist!");
?>
Het is ook mogelijk om return te gebruiken om de functie stop te zetten, indien er geen inhoud beschikbaar is. Beneden de js_alert aangepast. De aangepaste functie js_alert zal nu stop worden gezet indien er geen inhoud in $bericht zit.
<?
// maak een JavaScript alert gebruikmakend van $bericht
function js_alert($bericht)
{
// de nieuwe regel, kijkt of $bericht leeg is, en stopt het script als dit het geval is
if ($bericht == "")
return; // stop het script
echo (
"\n<SCRIPT LANGUAGE='JavaScript'>\n" .
" <!-- \n" .
" alert (\"$bericht\");\n" .
" // --> \n" .
"</SCRIPT>\n"
);
}
// roep de functie aan
js_alert("Het paswoord wat je hebt ingevoerd, is onjuist!"); // dit roept de functie aan
js_alert(""); // dit roept ook de functie aan
// maar er zal niets gebeuren omdat er geen inhoud beschikbaar is
?>
Nu we deze functie hebben, kunnen we er gelijk een functie maken, die kijkt of de velden van een formulier wel een inhoud hebben. Dit is bijvoorbeeld handig bij registratie-, contact formulieren etc..
<?
function formulier($veld)
{
// we gaan er van uit dat de naam,
// het email adres en
// het bericht gedefineerd zijn in het formulier
if ($naam == "")
js_alert("De naam is een verplicht veld!");
elseif ($email == "")
js_alert("Het email adres is een verplicht veld!");
elseif ($bericht == "")
js_alert("Het bericht is een verplicht veld!");
}
// roep de functie aan
formulier($naam);
formulier($email);
formulier($bericht);
?>
Pagina 3
Nested functies
Er is ook een mogelijkheid om nested functies te maken. Nested functies zijn functies, in functies.
<?
function vol($r)
{
function wiskunde($num)
{
return $num * $num * $num; // toont $num tot de derde macht
}
return 3.14159 * wiskunde($r);
}
?>
De bovenstaande functie zal pi (3.14159) keer wiskunde($r) tonen. Het is nu ook mogelijk om de functie wiskunde aan te roepen via het main script. Dus het zou net zo makkelijk zijn (en misschien zelfs overzichtelijker) als je de functies onder elkaar zet:
<?
function vol($r)
{
return 3.14159 * wiskunde($r);
}
function wiskunde($num)
{
return $num * $num * $num; // toont $num tot de derde macht
}
// roep de functies aan
$getal = "2";
echo (vol($getal)); // toont 25.13272
echo (wiskunde(4)); // toont 64
?>
PHP heeft zelf ook een functie (M_PI) ingebouwd die de waarde van pi heeft. Dus als alternatief voor de functie vol() zouden we ook kunnen zeggen:
<?
function vol($r)
{
return M_PI * wiskunde($r);
}
?>
Als slot, zorg er wel voor, dat de functie die je schrijft, niet de naam heeft van een bestaand geinteregeerde PHP functie. Dit veroorzaakt meestal conflicten.
<?
function vol($r)
{
function wiskunde($num)
{
return $num * $num * $num; // toont $num tot de derde macht
}
return 3.14159 * wiskunde($r);
}
?>
De bovenstaande functie zal pi (3.14159) keer wiskunde($r) tonen. Het is nu ook mogelijk om de functie wiskunde aan te roepen via het main script. Dus het zou net zo makkelijk zijn (en misschien zelfs overzichtelijker) als je de functies onder elkaar zet:
<?
function vol($r)
{
return 3.14159 * wiskunde($r);
}
function wiskunde($num)
{
return $num * $num * $num; // toont $num tot de derde macht
}
// roep de functies aan
$getal = "2";
echo (vol($getal)); // toont 25.13272
echo (wiskunde(4)); // toont 64
?>
PHP heeft zelf ook een functie (M_PI) ingebouwd die de waarde van pi heeft. Dus als alternatief voor de functie vol() zouden we ook kunnen zeggen:
<?
function vol($r)
{
return M_PI * wiskunde($r);
}
?>
Als slot, zorg er wel voor, dat de functie die je schrijft, niet de naam heeft van een bestaand geinteregeerde PHP functie. Dit veroorzaakt meestal conflicten.
Reacties
0