ReflectionClass_isSubclassOf_basic.phpt 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. --TEST--
  2. ReflectionClass::isSubclassOf()
  3. --FILE--
  4. <?php
  5. class A {}
  6. class B extends A {}
  7. class C extends B {}
  8. interface I {}
  9. class X implements I {}
  10. $classNames = array('A', 'B', 'C', 'I', 'X');
  11. foreach ($classNames as $className) {
  12. $rcs[$className] = new ReflectionClass($className);
  13. }
  14. foreach ($rcs as $childName => $child) {
  15. foreach ($rcs as $parentName => $parent) {
  16. echo "Is " . $childName . " a subclass of " . $parentName . "? \n";
  17. echo " - Using object argument: ";
  18. var_dump($child->isSubclassOf($parent));
  19. echo " - Using string argument: ";
  20. var_dump($child->isSubclassOf($parentName));
  21. }
  22. }
  23. ?>
  24. --EXPECT--
  25. Is A a subclass of A?
  26. - Using object argument: bool(false)
  27. - Using string argument: bool(false)
  28. Is A a subclass of B?
  29. - Using object argument: bool(false)
  30. - Using string argument: bool(false)
  31. Is A a subclass of C?
  32. - Using object argument: bool(false)
  33. - Using string argument: bool(false)
  34. Is A a subclass of I?
  35. - Using object argument: bool(false)
  36. - Using string argument: bool(false)
  37. Is A a subclass of X?
  38. - Using object argument: bool(false)
  39. - Using string argument: bool(false)
  40. Is B a subclass of A?
  41. - Using object argument: bool(true)
  42. - Using string argument: bool(true)
  43. Is B a subclass of B?
  44. - Using object argument: bool(false)
  45. - Using string argument: bool(false)
  46. Is B a subclass of C?
  47. - Using object argument: bool(false)
  48. - Using string argument: bool(false)
  49. Is B a subclass of I?
  50. - Using object argument: bool(false)
  51. - Using string argument: bool(false)
  52. Is B a subclass of X?
  53. - Using object argument: bool(false)
  54. - Using string argument: bool(false)
  55. Is C a subclass of A?
  56. - Using object argument: bool(true)
  57. - Using string argument: bool(true)
  58. Is C a subclass of B?
  59. - Using object argument: bool(true)
  60. - Using string argument: bool(true)
  61. Is C a subclass of C?
  62. - Using object argument: bool(false)
  63. - Using string argument: bool(false)
  64. Is C a subclass of I?
  65. - Using object argument: bool(false)
  66. - Using string argument: bool(false)
  67. Is C a subclass of X?
  68. - Using object argument: bool(false)
  69. - Using string argument: bool(false)
  70. Is I a subclass of A?
  71. - Using object argument: bool(false)
  72. - Using string argument: bool(false)
  73. Is I a subclass of B?
  74. - Using object argument: bool(false)
  75. - Using string argument: bool(false)
  76. Is I a subclass of C?
  77. - Using object argument: bool(false)
  78. - Using string argument: bool(false)
  79. Is I a subclass of I?
  80. - Using object argument: bool(false)
  81. - Using string argument: bool(false)
  82. Is I a subclass of X?
  83. - Using object argument: bool(false)
  84. - Using string argument: bool(false)
  85. Is X a subclass of A?
  86. - Using object argument: bool(false)
  87. - Using string argument: bool(false)
  88. Is X a subclass of B?
  89. - Using object argument: bool(false)
  90. - Using string argument: bool(false)
  91. Is X a subclass of C?
  92. - Using object argument: bool(false)
  93. - Using string argument: bool(false)
  94. Is X a subclass of I?
  95. - Using object argument: bool(true)
  96. - Using string argument: bool(true)
  97. Is X a subclass of X?
  98. - Using object argument: bool(false)
  99. - Using string argument: bool(false)