passByReference_010.phpt 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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. Strict Standards: 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. Strict Standards: 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. Strict Standards: Only variables should be passed by reference in %s on line 28
  43. string(20) "b.originala.original"
  44. string(10) "a.original"