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 >> /opt/php-7.0.1/Zend/tests/ |
files >> //opt/php-7.0.1/Zend/tests/bug38287.phpt |
--TEST-- Bug #38287 (static variables mess up global vars) --FILE-- <?php error_reporting(0); something::do_something(); // $not_there is really NULL var_dump($not_there); // error occurs here: execution should never get inside the if condition because $not_there is NULL if ($not_there["invalid_var"]) { // will print NULL (which is ok, but execution should never get here if the value is NULL) var_dump($not_there["use_authmodule"]); // will print "PATH:Array" print "PATH:".$not_there["use_authmodule"]."\n"; } class something { public static function get_object() { static $object=NULL; if ($object===NULL) $object=new something; return $object; } public static function do_something() { self::get_object()->vars[]=1; self::get_object()->vars[]=2; self::get_object()->vars[]=3; var_dump(self::get_object()->vars); } } ?> --EXPECT-- array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } NULLy~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`