ReflectionParameter_canBePassedByValue.phpt 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. --TEST--
  2. ReflectionParameter class - canBePassedByValue() method.
  3. --FILE--
  4. <?php
  5. function aux($fun) {
  6. $func = new ReflectionFunction($fun);
  7. $parameters = $func->getParameters();
  8. foreach($parameters as $parameter) {
  9. echo "Name: ", $parameter->getName(), "\n";
  10. echo "Is passed by reference: ", $parameter->isPassedByReference()?"yes":"no", "\n";
  11. echo "Can be passed by value: ", $parameter->canBePassedByValue()?"yes":"no", "\n";
  12. echo "\n";
  13. }
  14. }
  15. echo "=> array_multisort:\n\n";
  16. aux('array_multisort');
  17. echo "=> sort:\n\n";
  18. aux('sort');
  19. echo "=> user function:\n\n";
  20. function ufunc(&$arg1, $arg2) {}
  21. aux('ufunc');
  22. echo "Done.\n";
  23. ?>
  24. --EXPECTF--
  25. => array_multisort:
  26. Name: arr1
  27. Is passed by reference: yes
  28. Can be passed by value: yes
  29. Name: sort_order
  30. Is passed by reference: yes
  31. Can be passed by value: yes
  32. Name: sort_flags
  33. Is passed by reference: yes
  34. Can be passed by value: yes
  35. Name: arr2
  36. Is passed by reference: yes
  37. Can be passed by value: yes
  38. => sort:
  39. Name: arg
  40. Is passed by reference: yes
  41. Can be passed by value: no
  42. Name: sort_flags
  43. Is passed by reference: no
  44. Can be passed by value: yes
  45. => user function:
  46. Name: arg1
  47. Is passed by reference: yes
  48. Can be passed by value: no
  49. Name: arg2
  50. Is passed by reference: no
  51. Can be passed by value: yes
  52. Done.