ReflectionClass_isInstance_basic.phpt 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. --TEST--
  2. ReflectionClass::isInstance()
  3. --FILE--
  4. <?php
  5. class A {}
  6. class B extends A {}
  7. interface I {}
  8. class C implements I {}
  9. class X {}
  10. $classes = array("A", "B", "C", "I", "X");
  11. $instances = array( "myA" => new A,
  12. "myB" => new B,
  13. "myC" => new C,
  14. "myX" => new X );
  15. foreach ($classes as $class) {
  16. $rc = new ReflectionClass($class);
  17. foreach ($instances as $name => $instance) {
  18. echo "is $name a $class? ";
  19. var_dump($rc->isInstance($instance));
  20. }
  21. }
  22. ?>
  23. --EXPECT--
  24. is myA a A? bool(true)
  25. is myB a A? bool(true)
  26. is myC a A? bool(false)
  27. is myX a A? bool(false)
  28. is myA a B? bool(false)
  29. is myB a B? bool(true)
  30. is myC a B? bool(false)
  31. is myX a B? bool(false)
  32. is myA a C? bool(false)
  33. is myB a C? bool(false)
  34. is myC a C? bool(true)
  35. is myX a C? bool(false)
  36. is myA a I? bool(false)
  37. is myB a I? bool(false)
  38. is myC a I? bool(true)
  39. is myX a I? bool(false)
  40. is myA a X? bool(false)
  41. is myB a X? bool(false)
  42. is myC a X? bool(false)
  43. is myX a X? bool(true)