1--TEST-- 2correct instantiation of references between variables in sessions 3--SKIPIF-- 4<?php include('skipif.inc'); ?> 5--INI-- 6session.use_cookies=0 7session.use_strict_mode=0 8session.cache_limiter= 9session.serialize_handler=php 10session.save_handler=files 11--FILE-- 12<?php 13error_reporting(E_ALL); 14 15session_id("abtest"); 16session_start(); 17 18class a { 19 public $test = "hallo"; 20} 21 22class b { 23 public $a; 24 function __construct(&$a) { 25 $this->a = &$a; 26 } 27} 28 29$a = new a(); 30$b = new b($a); 31 32echo "original values:\n"; 33var_dump($a,$b); 34 35$_SESSION["a"] = $a; 36$_SESSION["b"] = $b; 37session_write_close(); 38 39unset($_SESSION["a"], $_SESSION["b"]); 40 41session_start(); 42 43echo "values after session:\n"; 44var_dump($a,$b); 45 46session_destroy(); 47?> 48--EXPECTF-- 49original values: 50object(a)#%d (1) { 51 ["test"]=> 52 string(5) "hallo" 53} 54object(b)#%d (1) { 55 ["a"]=> 56 &object(a)#%d (1) { 57 ["test"]=> 58 string(5) "hallo" 59 } 60} 61values after session: 62object(a)#%d (1) { 63 ["test"]=> 64 string(5) "hallo" 65} 66object(b)#%d (1) { 67 ["a"]=> 68 &object(a)#%d (1) { 69 ["test"]=> 70 string(5) "hallo" 71 } 72} 73