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; 37 38session_write_close(); 39unset($_SESSION['a']); 40unset($_SESSION['b']); 41 42session_start(); 43$a = $_SESSION['a']; 44$b = $_SESSION['b']; 45echo "values after session:\n"; 46var_dump($a,$b); 47session_destroy(); 48?> 49--EXPECTF-- 50original values: 51object(a)#%d (1) { 52 ["test"]=> 53 string(5) "hallo" 54} 55object(b)#%d (1) { 56 ["a"]=> 57 &object(a)#%d (1) { 58 ["test"]=> 59 string(5) "hallo" 60 } 61} 62values after session: 63object(a)#%d (1) { 64 ["test"]=> 65 string(5) "hallo" 66} 67object(b)#%d (1) { 68 ["a"]=> 69 &object(a)#%d (1) { 70 ["test"]=> 71 string(5) "hallo" 72 } 73} 74