ReflectionGenerator_basic.phpt 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. --TEST--
  2. ReflectionGenerator basic test
  3. --FILE--
  4. <?php
  5. function foo() {
  6. yield;
  7. }
  8. $gens = [
  9. (new class() {
  10. function a() {
  11. yield from foo();
  12. }
  13. })->a(),
  14. (function() {
  15. yield;
  16. })(),
  17. foo(),
  18. ];
  19. foreach ($gens as $gen) {
  20. var_dump($gen);
  21. $gen->valid(); // start Generator
  22. $ref = new ReflectionGenerator($gen);
  23. var_dump($ref->getTrace());
  24. var_dump($ref->getExecutingLine());
  25. var_dump($ref->getExecutingFile());
  26. var_dump($ref->getExecutingGenerator());
  27. var_dump($ref->getFunction());
  28. var_dump($ref->getThis());
  29. }
  30. ?>
  31. --EXPECTF--
  32. object(Generator)#2 (0) {
  33. }
  34. array(1) {
  35. [0]=>
  36. array(4) {
  37. ["file"]=>
  38. string(%d) "%s"
  39. ["line"]=>
  40. int(%d)
  41. ["function"]=>
  42. string(3) "foo"
  43. ["args"]=>
  44. array(0) {
  45. }
  46. }
  47. }
  48. int(%d)
  49. string(%d) "%sReflectionGenerator_basic.%s"
  50. object(Generator)#6 (0) {
  51. }
  52. object(ReflectionMethod)#8 (2) {
  53. ["name"]=>
  54. string(1) "a"
  55. ["class"]=>
  56. string(%d) "class@anonymous%s"
  57. }
  58. object(class@anonymous)#1 (0) {
  59. }
  60. object(Generator)#4 (0) {
  61. }
  62. array(0) {
  63. }
  64. int(%d)
  65. string(%d) "%sReflectionGenerator_basic.%s"
  66. object(Generator)#4 (0) {
  67. }
  68. object(ReflectionFunction)#7 (1) {
  69. ["name"]=>
  70. string(9) "{closure}"
  71. }
  72. NULL
  73. object(Generator)#5 (0) {
  74. }
  75. array(0) {
  76. }
  77. int(%d)
  78. string(%d) "%sReflectionGenerator_basic.%s"
  79. object(Generator)#5 (0) {
  80. }
  81. object(ReflectionFunction)#8 (1) {
  82. ["name"]=>
  83. string(3) "foo"
  84. }
  85. NULL