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