compact_variation1.phpt 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. --TEST--
  2. Test compact() function : usage variations - arrays containing references.
  3. --FILE--
  4. <?php
  5. /* Prototype : proto array compact(mixed var_names [, mixed ...])
  6. * Description: Creates a hash containing variables and their values
  7. * Source code: ext/standard/array.c
  8. * Alias to functions:
  9. */
  10. /*
  11. * compact variations - arrays with references
  12. */
  13. echo "*** Testing compact() : usage variations - arrays containg references ***\n";
  14. $a = 1;
  15. $b = 2;
  16. $c = 3;
  17. $string = "c";
  18. $arr1 = array("a", &$arr1);
  19. $arr2 = array("a", array(array(array("b"))));
  20. $arr2[1][0][0][] = &$arr2;
  21. $arr2[1][0][0][] = &$arr2[1];
  22. $arr3 = array(&$string);
  23. var_dump(compact($arr1));
  24. var_dump(compact($arr2));
  25. var_dump(compact($arr3));
  26. echo "Done";
  27. ?>
  28. --EXPECTF--
  29. *** Testing compact() : usage variations - arrays containg references ***
  30. Warning: compact(): recursion detected in %s on line %d
  31. array(1) {
  32. ["a"]=>
  33. int(1)
  34. }
  35. Warning: compact(): recursion detected in %s on line %d
  36. Warning: compact(): recursion detected in %s on line %d
  37. Warning: compact(): recursion detected in %s on line %d
  38. Warning: compact(): recursion detected in %s on line %d
  39. array(2) {
  40. ["a"]=>
  41. int(1)
  42. ["b"]=>
  43. int(2)
  44. }
  45. array(1) {
  46. ["c"]=>
  47. int(3)
  48. }
  49. Done