ReflectionClass_newInstanceWithoutConstructor.phpt 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. --TEST--
  2. ReflectionClass::newInstanceWithoutConstructor()
  3. --CREDITS--
  4. Sebastian Bergmann <sebastian@php.net>
  5. --FILE--
  6. <?php
  7. class Foo
  8. {
  9. public function __construct()
  10. {
  11. print __METHOD__;
  12. }
  13. }
  14. $class = new ReflectionClass('Foo');
  15. var_dump($class->newInstanceWithoutConstructor());
  16. $class = new ReflectionClass('StdClass');
  17. var_dump($class->newInstanceWithoutConstructor());
  18. $class = new ReflectionClass('DateTime');
  19. var_dump($class->newInstanceWithoutConstructor());
  20. $class = new ReflectionClass('Generator');
  21. var_dump($class->newInstanceWithoutConstructor());
  22. --EXPECTF--
  23. object(Foo)#%d (0) {
  24. }
  25. object(stdClass)#%d (0) {
  26. }
  27. object(DateTime)#%d (0) {
  28. }
  29. Fatal error: Uncaught exception 'ReflectionException' with message 'Class Generator is an internal class marked as final that cannot be instantiated without invoking its constructor' in %sReflectionClass_newInstanceWithoutConstructor.php:%d
  30. Stack trace:
  31. #0 %sReflectionClass_newInstanceWithoutConstructor.php(%d): ReflectionClass->newInstanceWithoutConstructor()
  32. #1 {main}
  33. thrown in %sReflectionClass_newInstanceWithoutConstructor.php on line %d