array_map_variation19.phpt 831 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. --TEST--
  2. Test array_map() function : usage variations - callback pass semantics
  3. --FILE--
  4. <?php
  5. /* Prototype : array array_map ( callback $callback , array $arr1 [, array $... ] )
  6. * Description: Applies the callback to the elements of the given arrays
  7. * Source code: ext/standard/array.c
  8. */
  9. /*
  10. * Test array_map() with a pass-by-value callback forced to behave as a pass-by-reference function.
  11. */
  12. $arr1 = array('original.0', 'original.1');
  13. $arr2 = array('original.0', 'original.1');
  14. function callback($a) {
  15. $a = "changed";
  16. }
  17. array_map('callback', $arr1);
  18. var_dump($arr1);
  19. $ref =& $arr2[0];
  20. array_map("callback", $arr2);
  21. var_dump($arr2);
  22. ?>
  23. --EXPECTF--
  24. array(2) {
  25. [0]=>
  26. string(10) "original.0"
  27. [1]=>
  28. string(10) "original.1"
  29. }
  30. array(2) {
  31. [0]=>
  32. &string(10) "original.0"
  33. [1]=>
  34. string(10) "original.1"
  35. }