summaryrefslogtreecommitdiff
path: root/Zend/tests/bug38287.phpt
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2006-08-07 15:15:22 +0000
committerDmitry Stogov <dmitry@php.net>2006-08-07 15:15:22 +0000
commitf5543a428dc1593f200c2b245bed62477b9922a0 (patch)
tree70af3866fd68c2847b43a2c6df84075ec7ad4432 /Zend/tests/bug38287.phpt
parentee82fb781a21a272bea8535e6ee150d4d927c10a (diff)
downloadphp-git-f5543a428dc1593f200c2b245bed62477b9922a0.tar.gz
Fixed bug #38287 (static variables mess up global vars)
Diffstat (limited to 'Zend/tests/bug38287.phpt')
-rwxr-xr-xZend/tests/bug38287.phpt45
1 files changed, 45 insertions, 0 deletions
diff --git a/Zend/tests/bug38287.phpt b/Zend/tests/bug38287.phpt
new file mode 100755
index 0000000000..9a53a9335f
--- /dev/null
+++ b/Zend/tests/bug38287.phpt
@@ -0,0 +1,45 @@
+--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)
+}
+NULL