Hoi,
Ik heb een vereenvoudigd voorbeeldscriptje gemaakt dat prima werkt in met PHP4.*:
Op regel 32 krijg ik de volgende fout: Notice: Undefined offset: 3 in TMPucsc2zdhm5.php on line 32
Wat het script moet doen is een menu opbouwen en aan de hand van $click_seq de juiste submenu;s openen. Dit werkt redelijk, met PHP 4 zelfs heel goed, maar PHP 5 gooit er die irritante error doorheen. Ik heb heel wat topics doorgenomen, en ook flink gegoogled, maar de offste error in dit verband kan ik gewoon niet helemaal plaatsen.
Ik vraag niet om een scriptdebug, maar iemand die mij kan vertellen wat die error in dit verband betekent. Het script gaat draaien op een server met PHP4, maar stel dat ze ooit gaan upgraden, dan wil ik vast voorbereid zijn....
output PHP4:
output PHP5:
Ik heb een vereenvoudigd voorbeeldscriptje gemaakt dat prima werkt in met PHP4.*:
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
29
30
31
32
33
34
35
36
37
38
39
40
| //De verchillende menu items met een id, een bovenligend id en een naam... $item[0] = array('id'=>1, 'parent_id'=>0,'naam'=>"item_1"); $item[1] = array('id'=>2, 'parent_id'=>0,'naam'=>"item_2"); $item[2] = array('id'=>3, 'parent_id'=>0,'naam'=>"item_3"); $item[3] = array('id'=>4, 'parent_id'=>0,'naam'=>"item_4"); $item[4] = array('id'=>5, 'parent_id'=>1,'naam'=>"item_5"); $item[5] = array('id'=>6, 'parent_id'=>1,'naam'=>"item_6"); $item[6] = array('id'=>7, 'parent_id'=>1,'naam'=>"item_7"); $item[7] = array('id'=>8, 'parent_id'=>1,'naam'=>"item_8"); $item[8] = array('id'=>9, 'parent_id'=>5,'naam'=>"item_9"); $item[9] = array('id'=>10, 'parent_id'=>5,'naam'=>"item_10"); //de volgorde waarin men bij het uiteindelijke item gekomen is. //in dit geval is dus op 1 geklikt, en vervolgens op 5... $click_seq = array(0=>0,1=>1,2=>5); //functie om spaties enzo te maken... function spaces($counter){ $spaces = ""; for($i=0; $i<$counter; $i++){ $spaces .= "| "; } return $spaces; } //functie die op recursieve wijze het menu opbouwt... function makeTree($item, $click_seq, $counter, $top){ $cnt = count($item); $depth = count($click_seq); for($i=0; $i<$cnt; $i++){ if($item[$i]['parent_id'] == $click_seq[$counter] && $top == $click_seq[$counter] && $counter < $depth){ //hier krijg ik een fout, ivm met $depth... echo spaces($counter); echo "|--- ".$item[$i]['naam']."<br>"; makeTree($item, $click_seq, $counter + 1, $item[$i]['id']); } } } makeTree($item, $click_seq, 0,0); |
Op regel 32 krijg ik de volgende fout: Notice: Undefined offset: 3 in TMPucsc2zdhm5.php on line 32
Wat het script moet doen is een menu opbouwen en aan de hand van $click_seq de juiste submenu;s openen. Dit werkt redelijk, met PHP 4 zelfs heel goed, maar PHP 5 gooit er die irritante error doorheen. Ik heb heel wat topics doorgenomen, en ook flink gegoogled, maar de offste error in dit verband kan ik gewoon niet helemaal plaatsen.
Ik vraag niet om een scriptdebug, maar iemand die mij kan vertellen wat die error in dit verband betekent. Het script gaat draaien op een server met PHP4, maar stel dat ze ooit gaan upgraden, dan wil ik vast voorbereid zijn....
output PHP4:
code:
1
2
3
4
5
6
7
8
9
10
| |--- item_1 | |--- item_5 | | |--- item_9 | | |--- item_10 | |--- item_6 | |--- item_7 | |--- item_8 |--- item_2 |--- item_3 |--- item_4 |
output PHP5:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| |--- item_1 | |--- item_5 | | |--- item_9 Notice: Undefined offset: 3 in D:\Projecten\Gastronome\webtests\TMPucsc2zdhm5.php on line 32 [...Nog een aantal keer dezelfde error...] Notice: Undefined offset: 3 in D:\Projecten\Gastronome\webtests\TMPucsc2zdhm5.php on line 32 | | |--- item_10 Notice: Undefined offset: 3 in D:\Projecten\Gastronome\webtests\TMPucsc2zdhm5.php on line 32 [...Nog een aantal keer dezelfde error...] Notice: Undefined offset: 3 in D:\Projecten\Gastronome\webtests\TMPucsc2zdhm5.php on line 32 | |--- item_6 | |--- item_7 | |--- item_8 |--- item_2 |--- item_3 |--- item_4 |