000.phpt 4.3 KB

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