nested_method_calls.phpt 434 B

123456789101112131415161718192021222324252627282930313233343536
  1. --TEST--
  2. Yield can be used in nested method calls
  3. --FILE--
  4. <?php
  5. class A {
  6. function foo() {
  7. echo "Called A::foo\n";
  8. }
  9. }
  10. class B {
  11. function foo() {
  12. echo "Called B::foo\n";
  13. }
  14. }
  15. function gen($obj) {
  16. $obj->foo($obj->foo(yield));
  17. }
  18. $g1 = gen(new A);
  19. $g1->current();
  20. $g2 = gen(new B);
  21. $g2->current();
  22. $g1->next();
  23. $g2->next();
  24. ?>
  25. --EXPECT--
  26. Called A::foo
  27. Called A::foo
  28. Called B::foo
  29. Called B::foo