bug29038.phpt 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. --TEST--
  2. Bug #29038 (extract(), EXTR_PREFIX_SAME option prefixes empty strings)
  3. --FILE--
  4. <?php
  5. function my_print_r($a) {
  6. ksort($a);
  7. print_r($a);
  8. }
  9. function f1() {
  10. $c = extract(array("" => 1),EXTR_PREFIX_SAME,"prefix");
  11. echo "Extracted:";
  12. var_dump($c);
  13. my_print_r(get_defined_vars());
  14. }
  15. function f2() {
  16. $a = 1;
  17. $c = extract(array("a" => 1),EXTR_PREFIX_SAME,"prefix");
  18. echo "Extracted:";
  19. var_dump($c);
  20. my_print_r(get_defined_vars());
  21. }
  22. function f3() {
  23. $a = 1;
  24. $c = extract(array("a" => 1),EXTR_PREFIX_ALL,"prefix");
  25. echo "Extracted:";
  26. var_dump($c);
  27. my_print_r(get_defined_vars());
  28. }
  29. function f4() {
  30. $c = extract(array("" => 1),EXTR_PREFIX_ALL,"prefix");
  31. echo "Extracted:";
  32. var_dump($c);
  33. my_print_r(get_defined_vars());
  34. }
  35. function f5() {
  36. $c = extract(array("111" => 1),EXTR_PREFIX_ALL,"prefix");
  37. echo "Extracted:";
  38. var_dump($c);
  39. my_print_r(get_defined_vars());
  40. }
  41. f1();
  42. f2();
  43. f3();
  44. f4();
  45. f5();
  46. ?>
  47. --EXPECT--
  48. Extracted:int(0)
  49. Array
  50. (
  51. [c] => 0
  52. )
  53. Extracted:int(1)
  54. Array
  55. (
  56. [a] => 1
  57. [c] => 1
  58. [prefix_a] => 1
  59. )
  60. Extracted:int(1)
  61. Array
  62. (
  63. [a] => 1
  64. [c] => 1
  65. [prefix_a] => 1
  66. )
  67. Extracted:int(0)
  68. Array
  69. (
  70. [c] => 0
  71. )
  72. Extracted:int(1)
  73. Array
  74. (
  75. [c] => 1
  76. [prefix_111] => 1
  77. )