xref: /PHP-7.4/ext/simplexml/tests/000.phpt (revision 54148fd6)
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(__DIR__.'/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("if (isset(\$$what)) 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');
25test('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)
171object(SimpleXMLElement)#%d (0) {
172}
173===sxe->elem1[0]["attr1"]
174bool(true)
175bool(true)
176int(0)
177object(SimpleXMLElement)#%d (1) {
178  [0]=>
179  string(5) "first"
180}
181===sxe->elem1[0]->attr1
182bool(false)
183bool(false)
184object(SimpleXMLElement)#%d (0) {
185}
186===sxe->elem1[1]
187bool(true)
188bool(true)
189int(0)
190object(SimpleXMLElement)#%d (1) {
191  ["@attributes"]=>
192  array(2) {
193    ["attr1"]=>
194    string(2) "11"
195    ["attr2"]=>
196    string(2) "12"
197  }
198}
199===sxe->elem1[2]
200bool(false)
201bool(false)
202NULL
203===sxe->elem11
204bool(true)
205bool(true)
206int(1)
207object(SimpleXMLElement)#%d (1) {
208  ["elem111"]=>
209  object(SimpleXMLElement)#%d (1) {
210    ["elem1111"]=>
211    object(SimpleXMLElement)#%d (0) {
212    }
213  }
214}
215===sxe->elem11->elem111
216bool(true)
217bool(true)
218int(1)
219object(SimpleXMLElement)#%d (1) {
220  ["elem1111"]=>
221  object(SimpleXMLElement)#%d (0) {
222  }
223}
224===sxe->elem11->elem111->elem1111
225bool(true)
226bool(true)
227int(1)
228object(SimpleXMLElement)#%d (0) {
229}
230===sxe->elem22
231bool(false)
232bool(false)
233object(SimpleXMLElement)#%d (0) {
234}
235===sxe->elem22->elem222
236bool(false)
237bool(false)
238NULL
239===sxe->elem22->attr22
240bool(false)
241bool(false)
242NULL
243===sxe->elem22["attr22"]
244bool(false)
245bool(false)
246NULL
247===DONE===
248