bug61998.phpt 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. --TEST--
  2. Bug #61998 (Using traits with method aliases appears to result in crash during execution)
  3. --FILE--
  4. <?php
  5. class Foo {
  6. use T1 {
  7. func as newFunc;
  8. }
  9. public function func() {
  10. echo "From Foo\n";
  11. }
  12. }
  13. trait T1 {
  14. public function func() {
  15. echo "From T1\n";
  16. }
  17. }
  18. class Bar {
  19. public function func() {
  20. echo "From Bar\n";
  21. }
  22. public function func2() {
  23. echo "From Bar\n";
  24. }
  25. public function func3() {
  26. echo "From Bar\n";
  27. }
  28. use T1 {
  29. func as newFunc;
  30. func as func2;
  31. }
  32. use T2 {
  33. func2 as newFunc2;
  34. func2 as newFunc3;
  35. func2 as func3;
  36. }
  37. }
  38. trait T2 {
  39. public function func2() {
  40. echo "From T2\n";
  41. }
  42. }
  43. $f = new Foo();
  44. $f->newFunc(); //from T1
  45. $f->func(); //from Foo
  46. $b = new Bar();
  47. $b->newFunc(); //from T1
  48. $b->func(); //from Bar
  49. $b->func2(); //from Bar
  50. $b->newFunc2(); //from T2
  51. $b->newFunc3(); //from T2
  52. $b->func3(); //from Bar
  53. ?>
  54. --EXPECT--
  55. From T1
  56. From Foo
  57. From T1
  58. From Bar
  59. From Bar
  60. From T2
  61. From T2
  62. From Bar