Variabele functies
Ook functies kun je variabel aanroepen. Bekijk de volgende code eens:
Code (php)
Dit geeft als uitkomst:
dit is een boom
wat is hier gebeurd? Bekijk de code eens. Eerst staan er twee simpele functies. Vervolgens wordt er een variabele gemaakt met de doelfunctie, in dit geval wil je boom aanroepen. En dan komt het: echo $var(); . in eerste instantie zou je zeggen dat dat niet kan, een functie kan toch niet met $ beginnen?
We bekijken eens wat php doet: voordat php een statement uitvoert, vervangt deze eerst alle variabelen door hun inhoud, dan pas wordt het statement echt uitgevoerd. Hier: eerst wordt $var() vervangen door boom(), en dan wordt boom() geechot. En boom is een gewone functie, dus dit wordt als functie uitgevoerd.
We gaan het wat moeilijker maken. Dit keer voegen we attributen toe, en gebruiken we een return:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
function huis($omgeving)
{
$omschrijving = 'dit is een huis, en dat staat in de ' . $omgeving;
return $omschrijving;
}
function boom($omgeving)
{
$omschrijving = 'dit is een boom, en dat staat in het ' . $omgeving;
return $omschrijving;
}
$var = 'huis';
$omgeving = 'stad';
$resultaat = $var($omgeving);
echo $resultaat;
?>
function huis($omgeving)
{
$omschrijving = 'dit is een huis, en dat staat in de ' . $omgeving;
return $omschrijving;
}
function boom($omgeving)
{
$omschrijving = 'dit is een boom, en dat staat in het ' . $omgeving;
return $omschrijving;
}
$var = 'huis';
$omgeving = 'stad';
$resultaat = $var($omgeving);
echo $resultaat;
?>
En dat geeft als uitkomst:
dit is een huis, en dat staat in de stad
dit werkt precies zoals functies normaal werken. het resultaat wordt opgeslagen in $resultaat, en dan kun je doet met $resultaat wat je wilt, in dit geval echoen.
« vorige pagina | volgende pagina »