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