bug60717.phpt 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. --TEST--
  2. Bug #60717 (Order of traits in use statement can cause unexpected unresolved abstract method)
  3. --FILE--
  4. <?php
  5. namespace HTML
  6. {
  7. interface Helper
  8. {
  9. function text($text);
  10. function attributes(array $attributes = null);
  11. function textArea(?array $attributes, $value);
  12. }
  13. trait TextUTF8
  14. {
  15. function text($text) {}
  16. }
  17. trait TextArea
  18. {
  19. function textArea(?array $attributes, $value) {}
  20. abstract function attributes(array $attributes = null);
  21. abstract function text($text);
  22. }
  23. trait HTMLAttributes
  24. {
  25. function attributes(array $attributes = null) { }
  26. abstract function text($text);
  27. }
  28. class HTMLHelper implements Helper
  29. {
  30. use TextArea, HTMLAttributes, TextUTF8;
  31. }
  32. class HTMLHelper2 implements Helper
  33. {
  34. use TextArea, TextUTF8, HTMLAttributes;
  35. }
  36. class HTMLHelper3 implements Helper
  37. {
  38. use HTMLAttributes, TextArea, TextUTF8;
  39. }
  40. class HTMLHelper4 implements Helper
  41. {
  42. use HTMLAttributes, TextUTF8, TextArea;
  43. }
  44. class HTMLHelper5 implements Helper
  45. {
  46. use TextUTF8, TextArea, HTMLAttributes;
  47. }
  48. class HTMLHelper6 implements Helper
  49. {
  50. use TextUTF8, HTMLAttributes, TextArea;
  51. }
  52. $o = new HTMLHelper;
  53. $o = new HTMLHelper2;
  54. $o = new HTMLHelper3;
  55. $o = new HTMLHelper4;
  56. $o = new HTMLHelper5;
  57. $o = new HTMLHelper6;
  58. echo 'Done';
  59. }
  60. ?>
  61. --EXPECT--
  62. Done