bug43926.phpt 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. --TEST--
  2. Bug #43926 (isInstance() isn't equivalent to instanceof operator)
  3. --FILE--
  4. <?php
  5. class E {
  6. }
  7. class D extends E {
  8. }
  9. class A extends D {
  10. }
  11. class C extends A {
  12. }
  13. $ra = new ReflectionClass('A');
  14. $rc = new ReflectionClass('C');
  15. $rd = new ReflectionClass('D');
  16. $re = new ReflectionClass('E');
  17. $ca = $ra->newInstance();
  18. $cc = $rc->newInstance();
  19. $cd = $rd->newInstance();
  20. $ce = $re->newInstance();
  21. print("Is? A ". ($ra->isInstance($ca) ? 'true' : 'false') .", instanceof: ". (($ca instanceof A) ? 'true' : 'false') ."\n");
  22. print("Is? C ". ($rc->isInstance($ca) ? 'true' : 'false') .", instanceof: ". (($ca instanceof C) ? 'true' : 'false') ."\n");
  23. print("Is? D ". ($rd->isInstance($ca) ? 'true' : 'false') .", instanceof: ". (($ca instanceof D) ? 'true' : 'false') ."\n");
  24. print("Is? E ". ($re->isInstance($ca) ? 'true' : 'false') .", instanceof: ". (($ca instanceof E) ? 'true' : 'false') ."\n");
  25. print "-\n";
  26. print("Is? A ". ($ra->isInstance($cc) ? 'true' : 'false') .", instanceof: ". (($cc instanceof A) ? 'true' : 'false') ."\n");
  27. print("Is? C ". ($rc->isInstance($cc) ? 'true' : 'false') .", instanceof: ". (($cc instanceof C) ? 'true' : 'false') ."\n");
  28. print("Is? D ". ($rd->isInstance($cc) ? 'true' : 'false') .", instanceof: ". (($cc instanceof D) ? 'true' : 'false') ."\n");
  29. print("Is? E ". ($re->isInstance($cc) ? 'true' : 'false') .", instanceof: ". (($cc instanceof E) ? 'true' : 'false') ."\n");
  30. print "-\n";
  31. print("Is? A ". ($ra->isInstance($cd) ? 'true' : 'false') .", instanceof: ". (($cd instanceof A) ? 'true' : 'false') ."\n");
  32. print("Is? C ". ($rc->isInstance($cd) ? 'true' : 'false') .", instanceof: ". (($cd instanceof C) ? 'true' : 'false') ."\n");
  33. print("Is? D ". ($rd->isInstance($cd) ? 'true' : 'false') .", instanceof: ". (($cd instanceof D) ? 'true' : 'false') ."\n");
  34. print("Is? E ". ($re->isInstance($cd) ? 'true' : 'false') .", instanceof: ". (($cd instanceof E) ? 'true' : 'false') ."\n");
  35. print "-\n";
  36. print("Is? A ". ($ra->isInstance($ce) ? 'true' : 'false') .", instanceof: ". (($ce instanceof A) ? 'true' : 'false') ."\n");
  37. print("Is? C ". ($rc->isInstance($ce) ? 'true' : 'false') .", instanceof: ". (($ce instanceof C) ? 'true' : 'false') ."\n");
  38. print("Is? D ". ($rd->isInstance($ce) ? 'true' : 'false') .", instanceof: ". (($ce instanceof D) ? 'true' : 'false') ."\n");
  39. print("Is? E ". ($re->isInstance($ce) ? 'true' : 'false') .", instanceof: ". (($ce instanceof E) ? 'true' : 'false') ."\n");
  40. ?>
  41. --EXPECT--
  42. Is? A true, instanceof: true
  43. Is? C false, instanceof: false
  44. Is? D true, instanceof: true
  45. Is? E true, instanceof: true
  46. -
  47. Is? A true, instanceof: true
  48. Is? C true, instanceof: true
  49. Is? D true, instanceof: true
  50. Is? E true, instanceof: true
  51. -
  52. Is? A false, instanceof: false
  53. Is? C false, instanceof: false
  54. Is? D true, instanceof: true
  55. Is? E true, instanceof: true
  56. -
  57. Is? A false, instanceof: false
  58. Is? C false, instanceof: false
  59. Is? D false, instanceof: false
  60. Is? E true, instanceof: true