summaryrefslogtreecommitdiff
path: root/Zend/tests/traits/bug61998.phpt
blob: 097073892f1648cf2d345da3a74f97ae19e1ac7a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
--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
--EXPECT--
From T1
From Foo
From T1
From Bar
From Bar
From T2
From T2
From Bar