000.phpt 4.1 KB

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