diff options
Diffstat (limited to 'ext/session/tests/006.phpt')
| -rw-r--r-- | ext/session/tests/006.phpt | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/ext/session/tests/006.phpt b/ext/session/tests/006.phpt new file mode 100644 index 0000000..03fca10 --- /dev/null +++ b/ext/session/tests/006.phpt @@ -0,0 +1,69 @@ +--TEST-- +correct instantiation of references between variables in sessions +--SKIPIF-- +<?php include('skipif.inc'); ?> +--INI-- +session.use_cookies=0 +session.cache_limiter= +session.serialize_handler=php +session.save_handler=files +--FILE-- +<?php +error_reporting(E_ALL); + +session_id("abtest"); +session_start(); + +class a { + public $test = "hallo"; +} + +class b { + public $a; + function b(&$a) { + $this->a = &$a; + } +} + +$a = new a(); +$b = new b($a); + +echo "original values:\n"; +var_dump($a,$b); + +$_SESSION["a"] = $a; +$_SESSION["b"] = $b; +session_write_close(); + +unset($_SESSION["a"], $_SESSION["b"]); + +session_start(); + +echo "values after session:\n"; +var_dump($a,$b); +?> +--EXPECTF-- +original values: +object(a)#%d (1) { + ["test"]=> + string(5) "hallo" +} +object(b)#%d (1) { + ["a"]=> + &object(a)#%d (1) { + ["test"]=> + string(5) "hallo" + } +} +values after session: +object(a)#%d (1) { + ["test"]=> + string(5) "hallo" +} +object(b)#%d (1) { + ["a"]=> + &object(a)#%d (1) { + ["test"]=> + string(5) "hallo" + } +} |
