Ik ben bezig geweest met een conversie van PHP5 code na PHP4 code. De oorspronkelijk PHP5 code bestaat uit een abstract class die heb laten vervallen. Verder werd er gebruik gemaakt van private/public functies, de keywords heb ik weggehaald.
Nu heb ik alleen het probleem dat de code prima werkt onder PHP5 maar niet onder PHP4, nu denk ik dat het te maken heeft met de veranderen qua references in PHP5. Nu heb ik dus op verschillende plaatsen & voor functies en variables geplaatst, alleen het maakt tot heden nog geen verschil. Ik snap er helemaal niks meer van
Iemand enig idee wat het probleme zou kunnen zijn? Ik vind het zelf namelijk vervelend om voor zoiets over te schakelen naar PHP5.
Nu heb ik alleen het probleem dat de code prima werkt onder PHP5 maar niet onder PHP4, nu denk ik dat het te maken heeft met de veranderen qua references in PHP5. Nu heb ik dus op verschillende plaatsen & voor functies en variables geplaatst, alleen het maakt tot heden nog geen verschil. Ik snap er helemaal niks meer van
Iemand enig idee wat het probleme zou kunnen zijn? Ik vind het zelf namelijk vervelend om voor zoiets over te schakelen naar PHP5.
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
| <?php require_once( 'class.url.inc.php'); require_once( 'Database/class.database.inc.php'); require_once( 'Database/class.queryresult.inc.php'); require_once( 'Database/class.databasefactory.inc.php'); //////////////////// $list = Gateway::load( Finder::findByParentId( 1 ) ); $adapter =& new TreeAdapter( &$list[0] ); $walker =& new TreeIterator( &$list ); $walker->walk( &$adapter ); $items =& $adapter->getItems(); print_r($items); /////////////////// class Gateway { function Gateway() {} function &load( $resultset=FALSE ) { $items = array(); if ( $resultset ) { while(false !== $resultset && false !== ($row = mysql_fetch_array( $resultset, MYSQL_ASSOC ) ) ) { $items[] = $row; } } return $items; } } class Finder { function Finder() { } function &findByParentId( $id ) { $link = mysql_connect( "localhost", "root", "xs4root") or die( "Kan niet verbinden: " . mysql_error()); mysql_select_db( 'blossom' ); $resultset = mysql_query( "SELECT * FROM catologue WHERE parent = {$id}" ); if ( !$resultset ) { trigger_error( 'Error occured while obtain resultset. (' . mysql_error() . ')', E_USER_WARNING ); return FALSE; } // when fails it returns FALSE otherwise the QueryResult() return $resultset; } } class TreeIterator { var $items; function &TreeIterator( $items ) { $this->items = $items; } function &walk( &$adapter ) { $items =& $this->items; foreach( $items as $item ) { $adapter->push( &$item ); $walker =& new TreeIterator( Gateway::load( Finder::findByParentId( $item[ 'id'] ) ) ); $walker->walk( &$adapter ); } } } class TreeAdapter { var $items; function &TreeAdapter( &$item ) { $this->items =& new Node( &$item ); } function &getItems() { return $this->items; } function &push( $item ) { $c = new Node( &$item ); if ( $tmp =& $this->traverse( $this->getItems(), $item ) ) { $tmp->attach( &$c ); } } function &traverse( &$Node, $item ) { if ( $Node->getId() == $item[ 'parent' ] ) { return $Node; } else { if ( $Node->hasChildren() ) { $children =& $Node->getChildren(); foreach( $children as $child ) { $c =& new Node( &$item ); if ( $tmp =& $this->traverse( &$child, &$item ) ) { $tmp->attach( &$c ); } } } } } } class Component { var $id; var $name; var $parent; var $children = array(); function &Component( &$item ) { $this->id = $item[ 'id' ]; $this->name = $item[ 'name' ]; $this->parent = $item[ 'parent' ]; } function getId() { return $this->id; } function getName() { return $this->name; } function getParent() { return $this->parent; } function hasChildren() { return count( $this->children ); } function getChildren() { return $this->children; } function &attach( &$Node ) { $this->children[] =& $Node; } } class Node extends Component { function &Node( &$item ) { parent::Component( &$item ); } } |
[ Voor 20% gewijzigd door alienfruit op 15-07-2005 12:29 ]