mirror of
https://github.com/php/php-src.git
synced 2024-09-24 11:27:28 +00:00
69 lines
1.0 KiB
PHP
69 lines
1.0 KiB
PHP
--TEST--
|
|
Bug #61998 (Using traits with method aliases appears to result in crash during execution)
|
|
--FILE--
|
|
<?php
|
|
class Foo {
|
|
use T1 {
|
|
func as newFunc;
|
|
}
|
|
|
|
public function func() {
|
|
echo "From Foo\n";
|
|
}
|
|
}
|
|
|
|
trait T1 {
|
|
public function func() {
|
|
echo "From T1\n";
|
|
}
|
|
}
|
|
|
|
class Bar {
|
|
public function func() {
|
|
echo "From Bar\n";
|
|
}
|
|
public function func2() {
|
|
echo "From Bar\n";
|
|
}
|
|
public function func3() {
|
|
echo "From Bar\n";
|
|
}
|
|
use T1 {
|
|
func as newFunc;
|
|
func as func2;
|
|
}
|
|
use T2 {
|
|
func2 as newFunc2;
|
|
func2 as newFunc3;
|
|
func2 as func3;
|
|
}
|
|
}
|
|
|
|
trait T2 {
|
|
public function func2() {
|
|
echo "From T2\n";
|
|
}
|
|
}
|
|
|
|
$f = new Foo();
|
|
|
|
$f->newFunc(); //from T1
|
|
$f->func(); //from Foo
|
|
|
|
$b = new Bar();
|
|
$b->newFunc(); //from T1
|
|
$b->func(); //from Bar
|
|
$b->func2(); //from Bar
|
|
$b->newFunc2(); //from T2
|
|
$b->newFunc3(); //from T2
|
|
$b->func3(); //from Bar
|
|
--EXPECTF--
|
|
From T1
|
|
From Foo
|
|
From T1
|
|
From Bar
|
|
From Bar
|
|
From T2
|
|
From T2
|
|
From Bar
|