Hey allen,
ik heb een recursieve functie om een array uit te poepen die vervolgens door de template parser omgebouwd kan worden naar wat je maar wilt.
Er is echter een groot probleem, de functie returned niet.
Bij de comment waar het mis gaat gaat het ook echt mis. Als ik de functie aanroep alsvolgt:
Dan returned deze NULL. Het wordt nog vreemder! Als ik op de plaats van de return een var_dump doe dan krijg ik een mooi lijstje van alles in de array. De $crumbs array bestaat dus echt op die plek, hij wordt alleen niet gereturned.
Ik zit me er nu al enige tijd op stuk te staren, misschien heeft iemand anders nog een idee?
ik heb een recursieve functie om een array uit te poepen die vervolgens door de template parser omgebouwd kan worden naar wat je maar wilt.
Er is echter een groot probleem, de functie returned niet.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| function breadcrumb( $current, $iteration = 0, $crumbs = array() ) { global $DB; $DB->query( 'SELECT `id`,`parent_id`,`name` FROM `i_category` WHERE `id` = [id]' ); $DB->replace( 'id', $current ); $DB->execute(); $crumb = $DB->fetchRow(); $crumbs[ $iteration ][ 'id' ] = $crumb[ 'id' ]; $crumbs[ $iteration ][ 'name' ] = $crumb[ 'name' ]; if( $crumb[ 'parent_id' ] != 0 ) { breadcrumb( $crumb[ 'parent_id' ], $iteration + 1, $crumbs ); } else { # Hier gaat het mis, print werkt wel, return niet return $crumbs; } } |
Bij de comment waar het mis gaat gaat het ook echt mis. Als ik de functie aanroep alsvolgt:
PHP:
1
| breadcrumb( 111 ); |
Dan returned deze NULL. Het wordt nog vreemder! Als ik op de plaats van de return een var_dump doe dan krijg ik een mooi lijstje van alles in de array. De $crumbs array bestaat dus echt op die plek, hij wordt alleen niet gereturned.
Ik zit me er nu al enige tijd op stuk te staren, misschien heeft iemand anders nog een idee?