passByReference_010.phpt 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. --TEST--
  2. Passing assignments by reference
  3. --FILE--
  4. <?php
  5. function f(&$a) {
  6. var_dump($a);
  7. $a = "a.changed";
  8. }
  9. echo "\n\n---> Pass constant assignment by reference:\n";
  10. f($a="a.original");
  11. var_dump($a);
  12. echo "\n\n---> Pass variable assignment by reference:\n";
  13. unset($a);
  14. $a = "a.original";
  15. f($b = $a);
  16. var_dump($a);
  17. echo "\n\n---> Pass reference assignment by reference:\n";
  18. unset($a, $b);
  19. $a = "a.original";
  20. f($b =& $a);
  21. var_dump($a);
  22. echo "\n\n---> Pass concat assignment by reference:\n";
  23. unset($a, $b);
  24. $b = "b.original";
  25. $a = "a.original";
  26. f($b .= $a);
  27. var_dump($a);
  28. ?>
  29. --EXPECTF--
  30. ---> Pass constant assignment by reference:
  31. Notice: Only variables should be passed by reference in %s on line 9
  32. string(10) "a.original"
  33. string(10) "a.original"
  34. ---> Pass variable assignment by reference:
  35. Notice: Only variables should be passed by reference in %s on line 15
  36. string(10) "a.original"
  37. string(10) "a.original"
  38. ---> Pass reference assignment by reference:
  39. string(10) "a.original"
  40. string(9) "a.changed"
  41. ---> Pass concat assignment by reference:
  42. Notice: Only variables should be passed by reference in %s on line 28
  43. string(20) "b.originala.original"
  44. string(10) "a.original"