1
0
mirror of https://github.com/php/php-src.git synced 2026-04-18 21:41:22 +02:00
Files
archived-php-src/Zend/tests/traits/bug55554b.phpt
2015-03-31 17:55:27 +02:00

59 lines
1.2 KiB
PHP

--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
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; OverridingIsSilent2 has a deprecated constructor in %s on line %d
OverridingIsSilent2 OverridingIsSilent2
Fatal error: ReportCollision has colliding constructor definitions coming from traits in %s on line %d