mirror of
https://github.com/php/php-src.git
synced 2026-04-17 21:11:02 +02:00
47 lines
985 B
PHP
47 lines
985 B
PHP
--TEST--
|
|
Bug #55137 (Legacy constructor not registered for class)
|
|
--FILE--
|
|
<?php
|
|
|
|
// Test that the behavior is consistent with the existing handling of new
|
|
// and legacy constructors.
|
|
// Here, the traits conflicts are overridden by local definitions,
|
|
// and the two constructor definitions do not directly collide in that case.
|
|
|
|
trait TC1 {
|
|
public function __construct() {
|
|
echo "TC1 executed\n";
|
|
}
|
|
public function ReportCollision() {
|
|
echo "TC1 executed\n";
|
|
}
|
|
}
|
|
|
|
trait TC2 {
|
|
public function __construct() {
|
|
echo "TC2 executed\n";
|
|
}
|
|
public function ReportCollision() {
|
|
echo "TC1 executed\n";
|
|
}
|
|
}
|
|
|
|
class ReportCollision {
|
|
use TC1, TC2;
|
|
|
|
public function __construct() {
|
|
echo "New constructor executed\n";
|
|
}
|
|
public function ReportCollision() {
|
|
echo "Legacy constructor executed\n";
|
|
}
|
|
}
|
|
|
|
|
|
echo "ReportCollision: ";
|
|
$o = new ReportCollision;
|
|
|
|
|
|
--EXPECT--
|
|
ReportCollision: New constructor executed
|