bug42976.phpt 731 B

12345678910111213141516171819202122232425262728293031323334
  1. --TEST--
  2. Bug #42976 (Crash when constructor for newInstance() or newInstanceArgs() fails)
  3. --FILE--
  4. <?php
  5. Class C {
  6. function __construct(&$x) {
  7. $x = "x.changed";
  8. }
  9. }
  10. $x = "x.original";
  11. new C($x); // OK
  12. var_dump($x);
  13. $rc = new ReflectionClass('C');
  14. $x = "x.original";
  15. $rc->newInstance($x); // causes crash
  16. var_dump($x);
  17. $x = "x.original";
  18. $rc->newInstanceArgs(array($x)); // causes crash
  19. var_dump($x);
  20. echo "Done\n";
  21. ?>
  22. --EXPECTF--
  23. string(9) "x.changed"
  24. Warning: C::__construct(): Argument #1 ($x) must be passed by reference, value given in %s on line %d
  25. string(10) "x.original"
  26. Warning: C::__construct(): Argument #1 ($x) must be passed by reference, value given in %s on line %d
  27. string(10) "x.original"
  28. Done