1--TEST--
2ReflectionClass::getConstructor()
3--FILE--
4<?php
5class NewCtor {
6	function __construct() {}
7}
8
9class ExtendsNewCtor extends NewCtor {
10}
11
12class OldCtor {
13	function OldCtor() {}
14}
15
16class ExtendsOldCtor extends OldCtor {
17}
18
19
20class X {
21	function Y() {}
22}
23
24class Y extends X {
25}
26
27class OldAndNewCtor {
28	function OldAndNewCtor() {}
29	function __construct() {}
30}
31
32class NewAndOldCtor {
33	function __construct() {}
34	function NewAndOldCtor() {}
35}
36class B {
37	function B() {}
38}
39
40class C extends B {
41	function C() {}
42}
43
44class D1 extends C {
45	function __construct() {}
46}
47
48class D2 extends C {
49}
50
51$classes = array('NewCtor', 'ExtendsNewCtor', 'OldCtor', 'ExtendsOldCtor',
52				 'OldAndNewCtor', 'NewAndOldCtor', 'B', 'C', 'D1', 'D2', 'X', 'Y');
53
54foreach ($classes as $class) {
55	$rc = new ReflectionClass($class);
56	$rm = $rc->getConstructor();
57	if ($rm != null) {
58		echo "Constructor of $class: " . $rm->getName() . "\n";
59	}  else {
60		echo "No constructor for $class\n";
61	}
62
63}
64
65?>
66--EXPECTF--
67Strict Standards: Redefining already defined constructor for class OldAndNewCtor in %s on line %d
68Constructor of NewCtor: __construct
69Constructor of ExtendsNewCtor: __construct
70Constructor of OldCtor: OldCtor
71Constructor of ExtendsOldCtor: OldCtor
72Constructor of OldAndNewCtor: __construct
73Constructor of NewAndOldCtor: __construct
74Constructor of B: B
75Constructor of C: C
76Constructor of D1: __construct
77Constructor of D2: C
78No constructor for X
79No constructor for Y
80