1--TEST-- 2Closures should be always called with ZEND_ACC_CLOSURE flag set 3--INI-- 4opcache.enable=1 5opcache.enable_cli=1 6opcache.file_update_protection=0 7opcache.protect_memory=1 8opcache.jit_hot_func=2 9--EXTENSIONS-- 10opcache 11--FILE-- 12<?php 13class Foo { 14} 15 16function bar() { 17 return function () { 18 return function () { 19 return function () { 20 return 42; 21 }; 22 }; 23 }; 24} 25 26$foo = new Foo; 27$f = bar(); 28 29var_dump($f->call($foo)); 30var_dump($f->call($foo)); 31var_dump($f()); 32?> 33--EXPECT-- 34object(Closure)#3 (1) { 35 ["this"]=> 36 object(Foo)#1 (0) { 37 } 38} 39object(Closure)#3 (1) { 40 ["this"]=> 41 object(Foo)#1 (0) { 42 } 43} 44object(Closure)#3 (0) { 45} 46