php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay
files >> /php-7.1.11/Zend/tests/ |
files >> //php-7.1.11/Zend/tests/closure_005.phpt |
--TEST-- Closure 005: Lambda inside class, lifetime of $this --FILE-- <?php class A { private $x; function __construct($x) { $this->x = $x; } function __destruct() { echo "Destroyed\n"; } function getIncer($val) { return function() use ($val) { $this->x += $val; }; } function getPrinter() { return function() { echo $this->x."\n"; }; } function getError() { return static function() { echo $this->x."\n"; }; } function printX() { echo $this->x."\n"; } } $a = new A(3); $incer = $a->getIncer(2); $printer = $a->getPrinter(); $error = $a->getError(); $a->printX(); $printer(); $incer(); $a->printX(); $printer(); unset($a); $incer(); $printer(); unset($incer); $printer(); unset($printer); $error(); echo "Done\n"; ?> --EXPECTF-- 3 3 5 5 7 7 Destroyed Fatal error: Uncaught Error: Using $this when not in object context in %sclosure_005.php:28 Stack trace: #0 %s(%d): A::{closure}() #1 {main} thrown in %sclosure_005.php on line 28y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`