Hey mensen,
Ik heb een probleem waarbij een recursieve functie een boolean waarde moet returnen. Ik heb het probleem beperkt tot deze testcase:
Ik ben er terwijl ik dit topic schrijf ook achter hoe ik het kan oplossen alleen zou ik graag weten hoe dit het technisch door (in dit geval) php intern wordt afgehandeld.
Het is op te lossen door de waarde van aap($a) weer te returnen aan de functie zelf.
Ik heb een probleem waarbij een recursieve functie een boolean waarde moet returnen. Ik heb het probleem beperkt tot deze testcase:
PHP:
Deze functie returned helemaal niks. Als ik met gettype het type opvraag is het wel een boolean. Het heeft (volgens mij) te maken met dat deze functie zichzelf aanroept en daarmee niet meer "weet" aan wie hij de waarde moet returnen.1
2
3
4
5
6
7
8
9
10
| function aap($a) { if($a == 10) return true; $a++; aap($a); } echo aap(3); |
Ik ben er terwijl ik dit topic schrijf ook achter hoe ik het kan oplossen alleen zou ik graag weten hoe dit het technisch door (in dit geval) php intern wordt afgehandeld.
Het is op te lossen door de waarde van aap($a) weer te returnen aan de functie zelf.
PHP:
Zou iemand kunnen uitleggen hoe zoiets intern werkt want waarom verliest hij de pointer als ik aap($a) niet return aan de functie?
1
2
3
4
5
6
7
8
9
10
| function aap($a) { if($a == 10) return true; $a++; return aap($a); //hier dus } echo aap(3); |