<?php
function foo($argument)
{
//
// hier komt jouw code
//
return $result;
}
?>
Deze functie heeft de naam foo, heeft als enige argument de variabele $argument
en geeft de waarde van variabele $result terug aan de code die foo heeft
aangeroepen. Wat een argument is leg ik later uit.
Tussen de haakjes () mogen meerdere parameters (a.k.a. argumenten) staan maar
je kunt de argumentenlijst ook leeg laten. De haakjes () moet je wel altijd
gebruiken om aan te geven dat het om een functie gaat.
<?php
function hoi()
{
echo "<b>hallo</b>";
}
?>
Je kunt deze functie bijvoorbeeld zo gebruiken:
<?php
function hoi()
{
echo "<b>hallo</b>";
}
echo "Demonstratie van een simpele functie<br>";
echo "Nu roepen we de functie aan... ";
hoi();
echo " ...en dat was het weer.";
?>
Zo ziet het resultaat eruit:
Demonstratie van een simpele functieLet erop dat de naam die je gebruikt om de functie aan te roepen exact hetzelfde is als de naam van de functie. Gebruik daarom bij voorkeur alleen kleine letters. Wat ook vaak gebruikt wordt is dat de eerste letter van de naam een hoofdletter is en de rest kleine letters.
De functie oppervlakte() heeft twee argumenten en een return-waarde. Met een argument wordt hier bedoeld een variabele die de functie in gaat. Er wordt ook wel gezegd dat je die variabelen "aan de functie meegeeft". In deze functie zijn dat de lengte en breedte.
De return-waarde is een variabele die uit de functie komt. Er wordt ook wel gezegd dat de functie die waarde "terug geeft".
<?php
// Hier wordt de functie oppervlakte() gemaakt
function oppervlakte($len,$br)
{
$opp= $len * $br;
return $opp;
}
/*
* Hieronder wordt de functie oppervlakte() op
* een aantal verschillende manieren gebruikt
*/
echo "Aanroep met getallen<br>\n";
echo "De oppervlakte van een rechthoek met lengte 4 en breedte 5 is: ";
echo oppervlakte(4,5);
echo "<p>";
echo "Aanroep met variabelen<br>\n";
$lengte=3;
$breedte=5;
echo "De oppervlakte van een rechthoek met lengte $lengte en breedte
$breedte is: ";
echo oppervlakte($lengte,$breedte);
echo "<p>";
echo "Aanroep vanuit een loopje<br>\n";
for($lengte=1; $lengte<4; $lengte++) {
for($breedte=1; $breedte<4; $breedte++) {
echo "De oppervlakte van een rechthoek met lengte $lengte en breedte
$breedte is: ";
echo oppervlakte($lengte,$breedte);
echo "<br>";
} // for breedte
} // for lengte
?>
Aanroep met getallenAanroep met variabelen
De oppervlakte van een rechthoek met lengte 3 en breedte
5 is: 15
Aanroep vanuit een loopje
De oppervlakte van een rechthoek met lengte 1 en breedte
1 is: 1
De oppervlakte van een rechthoek met lengte 1 en breedte
2 is: 2
De oppervlakte van een rechthoek met lengte 1 en breedte
3 is: 3
De oppervlakte van een rechthoek met lengte 2 en breedte
1 is: 2
De oppervlakte van een rechthoek met lengte 2 en breedte
2 is: 4
De oppervlakte van een rechthoek met lengte 2 en breedte
3 is: 6
De oppervlakte van een rechthoek met lengte 3 en breedte
1 is: 3
De oppervlakte van een rechthoek met lengte 3 en breedte
2 is: 6
De oppervlakte van een rechthoek met lengte 3 en breedte
3 is: 9
<?php
function kwadraat($getal)
{
$produkt = $getal * $getal;
return $produkt;
}
echo "Direkt afdrukken van het resultaat:<br>\n";
$wortel = 5;
echo "Het kwadraat van $wortel is " . kwadraat($wortel) . "<p>\n";
echo "Eerst een sommetje maken en dan afdrukken van het resultaat:<br>\n";
$wortel = 7;
$k = kwadraat($wortel);
$resultaat = $k + 1;
echo "Het kwadraat van $wortel plus 1 is " . $resultaat . "<p>\n";
?>
Direkt afdrukken van het resultaat:
Eerst een sommetje maken en dan afdrukken van het resultaat:
Het kwadraat van 7 plus 1 is 50
Je ziet hieraan een aantal dingen:
Als je argumenten opgeeft zoals in het voorbeeldje hierboven met de functie kwadraat, dan krijgt de variabele $getal binnen de functie de waarde van het argument dat je meegeeft. Wanneer we nou in de functie de waarde van $getal veranderen dan gebeurt er niks met de waarde van de variabele $wortel die in de aanroep stond omdat $getal eigenlijk een kopie is van $wortel.
Als je wilt dat $wortel wel de waarde aanneemt van het argument binnen de functie dan moet je de functie zo opschrijven:
<?php
function kwadraat(&$getal)
{
$produkt = $getal * $getal;
return $produkt;
}
?>
dus met een & voor het argument. Dit noemen ze het doorgeven van
een variabele 'by reference'. Je geeft namelijk niet de waarde door maar
een referentie (een verwijzing) naar de waarde.
Wat er werkelijk gebeurt zie je in het volgende diagram:
Op deze manier kun je vanuit een functie meer dan 1 waarde teruggeven, zoals in het volgende voorbeeld:
<?php
function geef_xyz(&$x, &$y, &$z)
{
$x=5;
$y="zes";
$z="zeven";
return 8;
}
// geef de variabelen ix, ei en zet alvast een waarde
$ix=0;
$ei=0;
$zet=0;
// aanroepen van de functie geef_xyz()
$resultaat=geef_xyz($ix,$ei,$zet);
echo "ix : $ix<br>\n";
echo "ei : $ei<br>\n";
echo "zet : $zet<br>\n";
echo "resultaat : $resultaat<br>\n";
?>
ix : 5In dit college komen een aantal standaard PHP functies aan bod uit de volgende categorieën:
<?php
$datum=getdate();
echo "Het is nu $datum[hours]:$datum[minutes]";
?>
Het is nu 22:48, shit zo laat al ?