Dabei seit: 29.06.2002 Ort: Düsseldorf Alter: 30 Geschlecht:
Verfasst Mi 05.07.2006 16:08 Titel
Fehlende Kindelemente in Baumstruktur - Bug in PHP 4?
Hi!
Ich habe hier ein eigenartiges Problem mit einer Baumstruktur, die ich mir gerade zu Versuchszwecken in PHP geschrieben habe. Die Baumeinträge werden unter PHP 4.X nur unvollständig angezeigt, bzw. Kindknoten ab der 2. Ebene haben plötzlich angeblich keine Nachfolger mehr, obwohl diese vorhanden sind.
Die Ausgabe müsste folgende sein, so sieht sie auf einem Server mit PHP 5.0.4 und einem anderen mit PHP 5.1.2 auch aus:
Dabei seit: 01.07.2006 Ort: Mooon Alter: - Geschlecht:
Verfasst Mi 05.07.2006 17:05 Titel
Also, bis dato:
Mach einfach mal ein:
Code:
print_r ($node1);
unter
Code:
$node1 = new Node(1, 'Essen');
$node2 = new Node(2, 'Früchte', &$node1);
$node3 = new Node(3, 'Fleisch', &$node1);
$node4 = new Node(4, 'Rot', &$node2);
$node5 = new Node(5, 'Kirsche', &$node4);
$node6 = new Node(6, 'Schwein', &$node3);
$node7 = new Node(7, 'Gelb', &$node2);
$node8 = new Node(8, 'Rind', &$node3);
$node9 = new Node(9, 'Banane', &$node7);
Dann siehst du das die Subklassen keine kinder haben.
Ich schaumal weiter
Der Fehler ist bis jetzt, dass die Childs nur bei ihrem Parent angemeldet werden, nicht aber beim Superparent.
Ein print_r von $node2 zeigt dir dass.
Node2s Mutter kennt ihre Kinder, nicht aber die Enkelkinder, ebenso wie Node1.
du brauchst also was wie
Code:
isChild()
Das allerdings dürfte ja normalerweise kein Problem sein, denn durch die rekursive Ausgabe, sollte die Klassen mit ihren kindern ja abgearbeitet werden. Mh ..
Verdammt nochmal, mittlerweile glaub ich immer mehr an einen Bug
Zuletzt bearbeitet von UNIQLab am Mi 05.07.2006 18:35, insgesamt 9-mal bearbeitet
Dabei seit: 29.06.2002 Ort: Düsseldorf Alter: 30 Geschlecht:
Verfasst Do 06.07.2006 08:47 Titel
Danke für Deinen Beitrag.
UNIQLab hat geschrieben:
Also, bis dato:
Mach einfach mal ein:
Code:
print_r ($node1);
Dann siehst du das die Subklassen keine kinder haben.
Doch, unter PHP 5 haben sie Ihre Kinder, nur unter PHP 4 gerade komischerweise nicht.
Zitat:
Das allerdings dürfte ja normalerweise kein Problem sein, denn durch die rekursive Ausgabe, sollte die Klassen mit ihren kindern ja abgearbeitet werden. Mh ..
So sieht es aus, das muss funktionieren.
Zitat:
Verdammt nochmal, mittlerweile glaub ich immer mehr an einen Bug
Kann doch gar nicht sein, dass das bisher sonst noch keiner von den Millionen PHP-Entwicklern festgestellt hat?
Dabei seit: 01.07.2006 Ort: Mooon Alter: - Geschlecht:
Verfasst Do 06.07.2006 16:51 Titel
Ich bin jetzt mal zu dem Schluss gelangt, dass die Referenzen, die du als kinder anhängst gar keine Refrenzen sind, sondern nur eine "hard-copy", trotz des "&" Symbols.
Warum das so ist ... Absolut keine Idee.
Dabei seit: 29.06.2002 Ort: Düsseldorf Alter: 30 Geschlecht:
Verfasst Fr 07.07.2006 10:01 Titel
UNIQLab hat geschrieben:
Ich bin jetzt mal zu dem Schluss gelangt, dass die Referenzen, die du als kinder anhängst gar keine Refrenzen sind, sondern nur eine "hard-copy", trotz des "&" Symbols.
Warum das so ist ... Absolut keine Idee.
So sieht es aus, anscheinend ist PHP 4 in diesem Zusammenhang in der Tat verbuggt.
Daher nun mein Rat: Lasst es mit Referenzen unter dieser Version lieber bleiben.
Ich habe nun also alles umgeschrieben, so dass keine Referenzen mehr verwendet werden:
Code:
class Node
{
var $id;
var $parentNode = -1;
var $childNodes = array();
var $pos;
var $name;
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.