ReflectionReference.phpt 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. --TEST--
  2. Basic ReflectionReference functionality
  3. --FILE--
  4. <?php
  5. $ary = [0, 1, 2, 3];
  6. $ref1 =& $ary[1];
  7. unset($ref1);
  8. $ref2 =& $ary[2];
  9. $ref3 =& $ary[3];
  10. echo "fromArrayElement():\n";
  11. $r0 = ReflectionReference::fromArrayElement($ary, 0);
  12. var_dump($r0 === null);
  13. $r1 = ReflectionReference::fromArrayElement($ary, 1);
  14. var_dump($r1 === null);
  15. $r2 = ReflectionReference::fromArrayElement($ary, 2);
  16. var_dump($r2 instanceof ReflectionReference);
  17. $r3 = ReflectionReference::fromArrayElement($ary, 3);
  18. var_dump($r2 instanceof ReflectionReference);
  19. echo "getId() #1:\n";
  20. var_dump($r2->getId() === $r2->getId());
  21. var_dump($r3->getId() === $r3->getId());
  22. var_dump($r2->getId() !== $r3->getId());
  23. echo "getId() #2:\n";
  24. $ary2 = [&$ary[2], &$ref3];
  25. $r2_2 = ReflectionReference::fromArrayElement($ary2, 0);
  26. $r3_2 = ReflectionReference::fromArrayElement($ary2, 1);
  27. var_dump($r2->getId() === $r2_2->getId());
  28. var_dump($r3->getId() === $r3_2->getId());
  29. echo "getId() #3:\n";
  30. $r2_id = $r2->getId();
  31. $r3_id = $r3->getId();
  32. unset($r0, $r1, $r2, $r3, $r2_2, $r3_2);
  33. $r2 = ReflectionReference::fromArrayElement($ary, 2);
  34. $r3 = ReflectionReference::fromArrayElement($ary, 3);
  35. var_dump($r2_id === $r2->getId());
  36. var_dump($r3_id === $r3->getId());
  37. ?>
  38. --EXPECT--
  39. fromArrayElement():
  40. bool(true)
  41. bool(true)
  42. bool(true)
  43. bool(true)
  44. getId() #1:
  45. bool(true)
  46. bool(true)
  47. bool(true)
  48. getId() #2:
  49. bool(true)
  50. bool(true)
  51. getId() #3:
  52. bool(true)
  53. bool(true)