Hi mensen,
ik ben bezig met een simpele functie die random een getal genereert en returned.
Deze functie spreek ik meerdere malen aan.
Indien een random getal al eerder is gekozen moet de functie opnieuw gestart worden totdat een uniek getal naar voren komt.
Zodra een waarde reeds bekend is wordt de functie opnieuw opgestart, echter de dan gevonden waarde wordt niet gereturned.
Kan iemand mij hiermee op weg helpen? Het is me niet helemaal duidelijk hoe dit soort recursieve functies werken.
Thanks!
p.s. het werkt wel als de return buiten de else { } gehaald wordt... Kan iemand mij dit uitleggen?
ik ben bezig met een simpele functie die random een getal genereert en returned.
Deze functie spreek ik meerdere malen aan.
Indien een random getal al eerder is gekozen moet de functie opnieuw gestart worden totdat een uniek getal naar voren komt.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| function getRandomSentence() { $iRandom = mt_rand(0,10)); echo 'gegenereerd: '.$iRandom.'<br />'; // Generated number reeds in gebruik if (in_array($iRandom, $this->aRandomNumbers)) { // functie opnieuw uitvoeren $iRandom = $this->getRandomSentence(); } else { $this->aRandomNumbers[] = $iRandom; return $iRandom; } } |
Zodra een waarde reeds bekend is wordt de functie opnieuw opgestart, echter de dan gevonden waarde wordt niet gereturned.
Kan iemand mij hiermee op weg helpen? Het is me niet helemaal duidelijk hoe dit soort recursieve functies werken.
Thanks!
p.s. het werkt wel als de return buiten de else { } gehaald wordt... Kan iemand mij dit uitleggen?
[ Voor 5% gewijzigd door Verwijderd op 24-08-2010 14:32 ]