func_get_args.004.phpt 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. --TEST--
  2. Pass same variable by ref and by value (PHP7).
  3. --FILE--
  4. <?php
  5. function valRef($x, &$y) {
  6. var_dump($x, $y);
  7. var_dump(func_get_args());
  8. $x = 'changed.x';
  9. $y = 'changed.y';
  10. var_dump(func_get_args());
  11. }
  12. function refVal(&$x, $y) {
  13. var_dump($x, $y);
  14. var_dump(func_get_args());
  15. $x = 'changed.x';
  16. $y = 'changed.y';
  17. var_dump(func_get_args());
  18. }
  19. echo "\n\n-- Val, Ref --\n";
  20. $a = 'original.a';
  21. valRef($a, $a);
  22. var_dump($a);
  23. echo "\n\n-- Ref, Val --\n";
  24. $b = 'original.b';
  25. refVal($b, $b);
  26. var_dump($b);
  27. ?>
  28. --EXPECT--
  29. -- Val, Ref --
  30. string(10) "original.a"
  31. string(10) "original.a"
  32. array(2) {
  33. [0]=>
  34. string(10) "original.a"
  35. [1]=>
  36. string(10) "original.a"
  37. }
  38. array(2) {
  39. [0]=>
  40. string(9) "changed.x"
  41. [1]=>
  42. string(9) "changed.y"
  43. }
  44. string(9) "changed.y"
  45. -- Ref, Val --
  46. string(10) "original.b"
  47. string(10) "original.b"
  48. array(2) {
  49. [0]=>
  50. string(10) "original.b"
  51. [1]=>
  52. string(10) "original.b"
  53. }
  54. array(2) {
  55. [0]=>
  56. string(9) "changed.x"
  57. [1]=>
  58. string(9) "changed.y"
  59. }
  60. string(9) "changed.x"