1--TEST-- 2Test compact() function : usage variations - arrays containing references. 3--FILE-- 4<?php 5/* Prototype : proto array compact(mixed var_names [, mixed ...]) 6* Description: Creates a hash containing variables and their values 7* Source code: ext/standard/array.c 8* Alias to functions: 9*/ 10/* 11* compact variations - arrays with references 12*/ 13echo "*** Testing compact() : usage variations - arrays containg references ***\n"; 14$a = 1; 15$b = 2; 16$c = 3; 17$string = "c"; 18$arr1 = array("a", &$arr1); 19$arr2 = array("a", array(array(array("b")))); 20$arr2[1][0][0][] = &$arr2; 21$arr2[1][0][0][] = &$arr2[1]; 22$arr3 = array(&$string); 23var_dump(compact($arr1)); 24var_dump(compact($arr2)); 25var_dump(compact($arr3)); 26echo "Done"; 27?> 28--EXPECTF-- 29*** Testing compact() : usage variations - arrays containg references *** 30 31Warning: compact(): recursion detected in %s on line %d 32array(1) { 33 ["a"]=> 34 int(1) 35} 36 37Warning: compact(): recursion detected in %s on line %d 38 39Warning: compact(): recursion detected in %s on line %d 40 41Warning: compact(): recursion detected in %s on line %d 42 43Warning: compact(): recursion detected in %s on line %d 44array(2) { 45 ["a"]=> 46 int(1) 47 ["b"]=> 48 int(2) 49} 50array(1) { 51 ["c"]=> 52 int(3) 53} 54Done 55