1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- --TEST--
- Bug #55137 (Legacy constructor not registered for class)
- --FILE--
- <?php
- trait TConstructor {
- public function foo() {
- echo "foo executed\n";
- }
- public function bar() {
- echo "bar executed\n";
- }
- }
- class OverridingIsSilent1 {
- use TConstructor {
- foo as __construct;
- }
-
- public function __construct() {
- echo "OverridingIsSilent1 __construct\n";
- }
- }
- $o = new OverridingIsSilent1;
- class OverridingIsSilent2 {
- use TConstructor {
- foo as OverridingIsSilent2;
- }
-
- public function OverridingIsSilent2() {
- echo "OverridingIsSilent2 OverridingIsSilent2\n";
- }
- }
- $o = new OverridingIsSilent2;
- class ReportCollision {
- use TConstructor {
- bar as ReportCollision;
- foo as __construct;
- }
- }
- echo "ReportCollision: ";
- $o = new ReportCollision;
- --EXPECTF--
- OverridingIsSilent1 __construct
- OverridingIsSilent2 OverridingIsSilent2
- Fatal error: ReportCollision has colliding constructor definitions coming from traits in %s on line %d
|