1--TEST--
2Test array_intersect_uassoc() function : usage variation - arrays containing referenced variables
3--FILE--
4<?php
5/* Prototype  : array array_intersect_uassoc(array arr1, array arr2 [, array ...], callback key_compare_func)
6 * Description: Computes the intersection of arrays with additional index check, compares indexes by a callback function
7 * Source code: ext/standard/array.c
8 */
9
10echo "*** Testing array_intersect_uassoc() : usage variation ***\n";
11
12//Initialize variables
13$ref_var = 'a';
14$array1 = array('a', $ref_var);
15$array2 = array('a' => 1, &$ref_var);
16
17echo "\n-- Testing array_intersect_uassoc() function with referenced variable \$ref_var has value '$ref_var' --\n";
18var_dump( array_intersect_uassoc($array1, $array2, "strcasecmp") );
19
20// re-assign reference variable to different value
21$ref_var = 10;
22echo "\n-- Testing array_intersect_uassoc() function with referenced variable \$ref_var value changed to $ref_var --\n";
23var_dump( array_intersect_uassoc($array1, $array2, "strcasecmp") );
24
25//When array are referenced
26$array2 = &$array1;
27echo "\n-- Testing array_intersect_uassoc() function when \$array2 is referencd to \$array1 --\n";
28var_dump( array_intersect_uassoc($array1, $array2, "strcasecmp") );
29?>
30===DONE===
31--EXPECTF--
32*** Testing array_intersect_uassoc() : usage variation ***
33
34-- Testing array_intersect_uassoc() function with referenced variable $ref_var has value 'a' --
35array(1) {
36  [0]=>
37  string(1) "a"
38}
39
40-- Testing array_intersect_uassoc() function with referenced variable $ref_var value changed to 10 --
41array(0) {
42}
43
44-- Testing array_intersect_uassoc() function when $array2 is referencd to $array1 --
45array(2) {
46  [0]=>
47  string(1) "a"
48  [1]=>
49  string(1) "a"
50}
51===DONE===
52