xref: /PHP-7.1/ext/simplexml/tests/000.phpt (revision 7af945e2)
1--TEST--
2SimpleXML: var_dump()
3--SKIPIF--
4<?php if (!extension_loaded("simplexml")) print "skip"; ?>
5--FILE--
6<?php
7
8$sxe = simplexml_load_file(dirname(__FILE__).'/000.xml');
9
10function test($what)
11{
12	global $sxe;
13	echo "===$what\n";
14	eval("var_dump(isset(\$$what));");
15	eval("var_dump((bool)\$$what);");
16	eval("var_dump(count(\$$what));");
17	eval("var_dump(\$$what);");
18}
19
20test('sxe');
21test('sxe->elem1');
22test('sxe->elem1[0]');
23test('sxe->elem1[0]->elem2');
24test('sxe->elem1[0]->elem2->bla');
25if (!ini_get("unicode_semantics")) test('sxe->elem1[0]["attr1"]');
26test('sxe->elem1[0]->attr1');
27test('sxe->elem1[1]');
28test('sxe->elem1[2]');
29test('sxe->elem11');
30test('sxe->elem11->elem111');
31test('sxe->elem11->elem111->elem1111');
32test('sxe->elem22');
33test('sxe->elem22->elem222');
34test('sxe->elem22->attr22');
35test('sxe->elem22["attr22"]');
36
37?>
38===DONE===
39<?php exit(0); ?>
40--EXPECTF--
41===sxe
42bool(true)
43bool(true)
44int(3)
45object(SimpleXMLElement)#%d (3) {
46  ["@attributes"]=>
47  array(1) {
48    ["id"]=>
49    string(3) "123"
50  }
51  ["elem1"]=>
52  array(2) {
53    [0]=>
54    string(36) "There is some text.Here is some more"
55    [1]=>
56    object(SimpleXMLElement)#%d (1) {
57      ["@attributes"]=>
58      array(2) {
59        ["attr1"]=>
60        string(2) "11"
61        ["attr2"]=>
62        string(2) "12"
63      }
64    }
65  }
66  ["elem11"]=>
67  object(SimpleXMLElement)#%d (1) {
68    ["elem111"]=>
69    object(SimpleXMLElement)#%d (1) {
70      ["elem1111"]=>
71      object(SimpleXMLElement)#%d (0) {
72      }
73    }
74  }
75}
76===sxe->elem1
77bool(true)
78bool(true)
79int(2)
80object(SimpleXMLElement)#%d (3) {
81  ["@attributes"]=>
82  array(2) {
83    ["attr1"]=>
84    string(5) "first"
85    ["attr2"]=>
86    string(6) "second"
87  }
88  ["comment"]=>
89  object(SimpleXMLElement)#%d (0) {
90  }
91  ["elem2"]=>
92  object(SimpleXMLElement)#%d (2) {
93    ["@attributes"]=>
94    array(2) {
95      ["att25"]=>
96      string(2) "25"
97      ["att42"]=>
98      string(2) "42"
99    }
100    ["elem3"]=>
101    object(SimpleXMLElement)#%d (1) {
102      ["elem4"]=>
103      object(SimpleXMLElement)#%d (1) {
104        ["test"]=>
105        object(SimpleXMLElement)#%d (0) {
106        }
107      }
108    }
109  }
110}
111===sxe->elem1[0]
112bool(true)
113bool(true)
114int(1)
115object(SimpleXMLElement)#%d (3) {
116  ["@attributes"]=>
117  array(2) {
118    ["attr1"]=>
119    string(5) "first"
120    ["attr2"]=>
121    string(6) "second"
122  }
123  ["comment"]=>
124  object(SimpleXMLElement)#%d (0) {
125  }
126  ["elem2"]=>
127  object(SimpleXMLElement)#%d (2) {
128    ["@attributes"]=>
129    array(2) {
130      ["att25"]=>
131      string(2) "25"
132      ["att42"]=>
133      string(2) "42"
134    }
135    ["elem3"]=>
136    object(SimpleXMLElement)#%d (1) {
137      ["elem4"]=>
138      object(SimpleXMLElement)#%d (1) {
139        ["test"]=>
140        object(SimpleXMLElement)#%d (0) {
141        }
142      }
143    }
144  }
145}
146===sxe->elem1[0]->elem2
147bool(true)
148bool(true)
149int(1)
150object(SimpleXMLElement)#%d (2) {
151  ["@attributes"]=>
152  array(2) {
153    ["att25"]=>
154    string(2) "25"
155    ["att42"]=>
156    string(2) "42"
157  }
158  ["elem3"]=>
159  object(SimpleXMLElement)#%d (1) {
160    ["elem4"]=>
161    object(SimpleXMLElement)#%d (1) {
162      ["test"]=>
163      object(SimpleXMLElement)#%d (0) {
164      }
165    }
166  }
167}
168===sxe->elem1[0]->elem2->bla
169bool(false)
170bool(false)
171int(0)
172object(SimpleXMLElement)#%d (0) {
173}
174===sxe->elem1[0]["attr1"]
175bool(true)
176bool(true)
177int(0)
178object(SimpleXMLElement)#%d (1) {
179  [0]=>
180  string(5) "first"
181}
182===sxe->elem1[0]->attr1
183bool(false)
184bool(false)
185int(0)
186object(SimpleXMLElement)#%d (0) {
187}
188===sxe->elem1[1]
189bool(true)
190bool(true)
191int(0)
192object(SimpleXMLElement)#%d (1) {
193  ["@attributes"]=>
194  array(2) {
195    ["attr1"]=>
196    string(2) "11"
197    ["attr2"]=>
198    string(2) "12"
199  }
200}
201===sxe->elem1[2]
202bool(false)
203bool(false)
204int(0)
205NULL
206===sxe->elem11
207bool(true)
208bool(true)
209int(1)
210object(SimpleXMLElement)#%d (1) {
211  ["elem111"]=>
212  object(SimpleXMLElement)#%d (1) {
213    ["elem1111"]=>
214    object(SimpleXMLElement)#%d (0) {
215    }
216  }
217}
218===sxe->elem11->elem111
219bool(true)
220bool(true)
221int(1)
222object(SimpleXMLElement)#%d (1) {
223  ["elem1111"]=>
224  object(SimpleXMLElement)#%d (0) {
225  }
226}
227===sxe->elem11->elem111->elem1111
228bool(true)
229bool(true)
230int(1)
231object(SimpleXMLElement)#%d (0) {
232}
233===sxe->elem22
234bool(false)
235bool(false)
236int(0)
237object(SimpleXMLElement)#%d (0) {
238}
239===sxe->elem22->elem222
240bool(false)
241bool(false)
242int(0)
243NULL
244===sxe->elem22->attr22
245bool(false)
246bool(false)
247int(0)
248NULL
249===sxe->elem22["attr22"]
250bool(false)
251bool(false)
252int(0)
253NULL
254===DONE===
255