1--TEST--
2Test array_intersect_key() function : usage variation - Passing null,unset and undefeined variable indexed array
3--FILE--
4<?php
5/* Prototype  : array array_intersect_key(array arr1, array arr2 [, array ...])
6 * Description: Returns the entries of arr1 that have keys which are present in all the other arguments.
7 * Source code: ext/standard/array.c
8 */
9
10echo "*** Testing array_intersect_key() : usage variation ***\n";
11
12// Initialise function arguments not being substituted (if any)
13$input_array = array(0 => '0', 1 => '1' , -10 => '-10' , null => 'null');
14//get an unset variable
15$unset_var = 10;
16unset ($unset_var);
17
18$input_arrays = array(
19      'null indexed' => array(NULL => 'null 1', null => 'null 2'),
20      'undefined indexed' => array(@$undefined_var => 'undefined'),
21      'unset  indexed' => array(@$unset_var => 'unset'),
22);
23
24foreach($input_arrays as $key =>$value) {
25      echo "\n--$key--\n";
26      var_dump( array_intersect_key($input_array, $value) );
27      var_dump( array_intersect_key($value,$input_array ) );
28}
29?>
30===DONE===
31--EXPECTF--
32*** Testing array_intersect_key() : usage variation ***
33
34--null indexed--
35array(1) {
36  [""]=>
37  string(4) "null"
38}
39array(1) {
40  [""]=>
41  string(6) "null 2"
42}
43
44--undefined indexed--
45array(1) {
46  [""]=>
47  string(4) "null"
48}
49array(1) {
50  [""]=>
51  string(9) "undefined"
52}
53
54--unset  indexed--
55array(1) {
56  [""]=>
57  string(4) "null"
58}
59array(1) {
60  [""]=>
61  string(5) "unset"
62}
63===DONE===
64