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