Написал реализацию списков на пхп. Всё работает отлично в пхп 5, но на хостинге только 4-ый, в котором работает правильно только корневой элемент

помоги разобраться в чём дело... заранее спасибо
<?php
// класс для списка
class ListNode{
var $Value;
var $NextNode;
var $SubNode;
}
$root = NULL;
$root = &addnode( &$root, '5656' );
$r1 = &addnode( &$root, '9595' );
addsub( $r1, '856');
$r2 = &addsub( &$r1, 'GGGGG');
addsub( $r2, '123456');
addnode( &$root, 'gggg' );
parse( $root, '=' );
// функция добавления в конец списка
function addnode( &$root, $value ){
if ( $root == NULL ) {
$root = new ListNode();
$root->Value = $value;
$root->NextNode = NULL;
$root->SubNode = NULL;
return $root;
} else {
$curnode = $root;
while ( $curnode->NextNode != NULL ){
$curnode = $curnode->NextNode;
}
$curnode->NextNode = new ListNode();
$curnode = $curnode->NextNode;
$curnode->Value = $value;
$curnode->NextNode = NULL;
$curnode->SubNode = NULL;
return $curnode;
}
}
// добавление дочерних элементов
function addsub( &$root, $value ) {
if ( $root->SubNode == NULL ) {
$root->SubNode = new ListNode();
$curnode = $root->SubNode;
$curnode->Value = $value;
$curnode->NextNode = NULL;
$curnode->SubNode = NULL;
return $curnode;
} else {
$curnode = $root->SubNode;
while ( $curnode->NextNode != NULL ){
$curnode = $curnode->NextNode;
}
$curnode->NextNode = new ListNode();
$curnode = $curnode->NextNode;
$curnode->Value = $value;
$curnode->NextNode = NULL;
$curnode->SubNode = NULL;
return $curnode;
}
}
// вывод дерева
function parse( &$root, $space = '' ){
$curnode = $root;
while ( $curnode != NULL ) {
echo $space.$curnode->Value.'<br>';
if ( $curnode->SubNode != NULL ) {
parse( $curnode->SubNode , $space.'====' );
}
$curnode = $curnode->NextNode;
}
}
?>