class_uses_basic2.phpt 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. --TEST--
  2. SPL: Test class_uses() function : basic
  3. --FILE--
  4. <?php
  5. echo "*** Testing class_uses() : basic ***\n";
  6. trait foo { }
  7. class fooUser { use foo; }
  8. trait bar { }
  9. class barUser { use bar; }
  10. class foobarUser { use foo, bar; }
  11. /** There is no semantics for traits in the inheritance chain.
  12. Traits are flattened into a class, and that semantics is nothing
  13. like a type, or interface, and thus, not propergated. */
  14. class fooViaBarUser extends barUser { use foo; }
  15. class fooExtended extends fooUser {}
  16. s_var_dump(class_uses(new foobarUser));
  17. s_var_dump(class_uses('foobarUser'));
  18. s_var_dump(class_uses(new fooViaBarUser));
  19. s_var_dump(class_uses('fooViaBarUser'));
  20. s_var_dump(class_uses(new fooExtended));
  21. s_var_dump(class_uses('fooExtended'));
  22. function s_var_dump($arr) {
  23. krsort($arr);
  24. var_dump($arr);
  25. }
  26. ?>
  27. --EXPECT--
  28. *** Testing class_uses() : basic ***
  29. array(2) {
  30. ["foo"]=>
  31. string(3) "foo"
  32. ["bar"]=>
  33. string(3) "bar"
  34. }
  35. array(2) {
  36. ["foo"]=>
  37. string(3) "foo"
  38. ["bar"]=>
  39. string(3) "bar"
  40. }
  41. array(1) {
  42. ["foo"]=>
  43. string(3) "foo"
  44. }
  45. array(1) {
  46. ["foo"]=>
  47. string(3) "foo"
  48. }
  49. array(0) {
  50. }
  51. array(0) {
  52. }