1--TEST--
2ReflectionClass::newInstanceWithoutConstructor()
3--CREDITS--
4Sebastian Bergmann <sebastian@php.net>
5--FILE--
6<?php
7class Foo
8{
9    public function __construct()
10    {
11        print __METHOD__;
12    }
13}
14
15$class = new ReflectionClass('Foo');
16var_dump($class->newInstanceWithoutConstructor());
17
18$class = new ReflectionClass('StdClass');
19var_dump($class->newInstanceWithoutConstructor());
20
21$class = new ReflectionClass('DateTime');
22var_dump($class->newInstanceWithoutConstructor());
23
24$class = new ReflectionClass('Generator');
25var_dump($class->newInstanceWithoutConstructor());
26--EXPECTF--
27object(Foo)#%d (0) {
28}
29object(stdClass)#%d (0) {
30}
31object(DateTime)#%d (0) {
32}
33
34Fatal 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
35Stack trace:
36#0 %sReflectionClass_newInstanceWithoutConstructor.php(%d): ReflectionClass->newInstanceWithoutConstructor()
37#1 {main}
38  thrown in %sReflectionClass_newInstanceWithoutConstructor.php on line %d
39