closure_026.phpt 724 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. --TEST--
  2. Closure 026: Assigning a closure object to an array in $this
  3. --FILE--
  4. <?php
  5. class foo {
  6. public function __construct() {
  7. $a =& $this;
  8. $a->a[] = function() {
  9. return 1;
  10. };
  11. var_dump($this);
  12. var_dump($this->a[0]());
  13. }
  14. }
  15. $x = new foo;
  16. print "--------------\n";
  17. foreach ($x as $b => $c) {
  18. var_dump($b, $c);
  19. var_dump($c[0]());
  20. }
  21. ?>
  22. --EXPECTF--
  23. object(foo)#%d (1) {
  24. ["a"]=>
  25. array(1) {
  26. [0]=>
  27. object(Closure)#%d (1) {
  28. ["this"]=>
  29. *RECURSION*
  30. }
  31. }
  32. }
  33. int(1)
  34. --------------
  35. string(1) "a"
  36. array(1) {
  37. [0]=>
  38. object(Closure)#%d (1) {
  39. ["this"]=>
  40. object(foo)#%d (1) {
  41. ["a"]=>
  42. *RECURSION*
  43. }
  44. }
  45. }
  46. int(1)