xref: /PHP-8.3/Zend/tests/bug79778.phpt (revision 0b1d750d)
1--TEST--
2Bug #79778: Assertion failure if dumping closure with unresolved static variable
3--FILE--
4<?php
5$closure1 = function() {
6    static $var = CONST_REF;
7};
8
9var_dump($closure1);
10print_r($closure1);
11
12try {
13    $closure1();
14} catch (\Error $e) {
15    echo $e->getMessage(), "\n";
16}
17
18var_dump($closure1);
19print_r($closure1);
20
21const CONST_REF = 'foo';
22$closure1();
23var_dump($closure1);
24print_r($closure1);
25
26?>
27--EXPECT--
28object(Closure)#1 (1) {
29  ["static"]=>
30  array(1) {
31    ["var"]=>
32    NULL
33  }
34}
35Closure Object
36(
37    [static] => Array
38        (
39            [var] =>
40        )
41
42)
43Undefined constant "CONST_REF"
44object(Closure)#1 (1) {
45  ["static"]=>
46  array(1) {
47    ["var"]=>
48    NULL
49  }
50}
51Closure Object
52(
53    [static] => Array
54        (
55            [var] =>
56        )
57
58)
59object(Closure)#1 (1) {
60  ["static"]=>
61  array(1) {
62    ["var"]=>
63    string(3) "foo"
64  }
65}
66Closure Object
67(
68    [static] => Array
69        (
70            [var] => foo
71        )
72
73)
74