1--TEST-- 2Test array_key_exists() function 3--FILE-- 4<?php 5echo "*** Testing basic functionalities ***\n"; 6/* Arrays with regular values */ 7$search_arrays = array( 8 array(1,2,3,4), 9 array('a','b','c'), 10 array('abc', 'bcd', 'dcf'), 11 array("test", "rest", "enjoy"), 12 array("Name" => "Jack", "Loc" => "Mars", "Id" => "MS123"), 13 array('Red' => 'Rose', 'I' => 'You'), 14 array(0 => 'Zero', 1 => 'One', 2 => 'Two', 3 => "Three" ), 15 ); 16/* keys to search in $search_arrays. $keys[0] 17 is the key to be searched in $search_arrays[0] and so on */ 18$keys = array( 1, 'a', 2, 4, "Name", "Red", 0, 3 ); 19 20$key_counter = 0; 21foreach ($search_arrays as $search_array) { 22 $key = $keys[ $key_counter++ ]; 23 echo "-- Iteration $key_counter --\n"; 24 var_dump( array_key_exists($key, $search_array) ); 25} 26 27echo "\n*** Testing possible variations ***\n"; 28// use different keys on each sub array of $search_arrays 29$key_variations = array ("", NULL, null, " ", '', "test", 1); 30$key_counter = 0; 31$key_count = count ( $key_variations ); 32echo "\n** Variation loop 1 **\n"; 33$out_loop_count = 0; 34foreach ($search_arrays as $search_array) { 35 $key_counter = 0; 36 $out_loop_count ++; echo "-- Iteration $out_loop_count --\n"; 37 while ( $key_counter < $key_count ) { 38 $key = $key_variations[ $key_counter++ ]; 39 var_dump( array_key_exists($key, $search_array) ); 40 } 41} 42// arrays with variation in elements 43$search_arrays_v = array ( 44 array(), 45 array(NULL), 46 array(array(), 1, 2), 47 array(1,2,3, "" => "value", NULL => "value", true => "value" ), 48 array( array(2,4,5), array ("a","b","d") ) 49 ); 50// search for $key_variations in each sub array of $search_arrays_v 51echo "\n** Variation loop 2 **\n"; 52$out_loop_count = 0; 53foreach ($search_arrays_v as $search_array) { 54 $key_counter = 0; 55 $out_loop_count ++; echo "-- Iteration $out_loop_count --\n"; 56 while ( $key_counter < $key_count ) { 57 $key = $key_variations[ $key_counter++ ]; 58 var_dump( array_key_exists($key, $search_array) ); 59 } 60} 61 62echo "\n*** Testing error conditions ***\n"; 63// first args as array 64try { 65 array_key_exists(array(), array()); 66} catch (TypeError $exception) { 67 echo $exception->getMessage() . "\n"; 68} 69 70echo "\n*** Testing operation on objects ***\n"; 71class key_check 72{ 73 public $public_var = "Public var"; 74} 75 76$key_check_obj = new key_check; //new object 77try { 78 var_dump(array_key_exists("public_var", $key_check_obj)); 79} catch (TypeError $e) { 80 echo $e->getMessage(), "\n"; 81} 82 83echo "Done\n"; 84?> 85--EXPECT-- 86*** Testing basic functionalities *** 87-- Iteration 1 -- 88bool(true) 89-- Iteration 2 -- 90bool(false) 91-- Iteration 3 -- 92bool(true) 93-- Iteration 4 -- 94bool(false) 95-- Iteration 5 -- 96bool(true) 97-- Iteration 6 -- 98bool(true) 99-- Iteration 7 -- 100bool(true) 101 102*** Testing possible variations *** 103 104** Variation loop 1 ** 105-- Iteration 1 -- 106bool(false) 107bool(false) 108bool(false) 109bool(false) 110bool(false) 111bool(false) 112bool(true) 113-- Iteration 2 -- 114bool(false) 115bool(false) 116bool(false) 117bool(false) 118bool(false) 119bool(false) 120bool(true) 121-- Iteration 3 -- 122bool(false) 123bool(false) 124bool(false) 125bool(false) 126bool(false) 127bool(false) 128bool(true) 129-- Iteration 4 -- 130bool(false) 131bool(false) 132bool(false) 133bool(false) 134bool(false) 135bool(false) 136bool(true) 137-- Iteration 5 -- 138bool(false) 139bool(false) 140bool(false) 141bool(false) 142bool(false) 143bool(false) 144bool(false) 145-- Iteration 6 -- 146bool(false) 147bool(false) 148bool(false) 149bool(false) 150bool(false) 151bool(false) 152bool(false) 153-- Iteration 7 -- 154bool(false) 155bool(false) 156bool(false) 157bool(false) 158bool(false) 159bool(false) 160bool(true) 161 162** Variation loop 2 ** 163-- Iteration 1 -- 164bool(false) 165bool(false) 166bool(false) 167bool(false) 168bool(false) 169bool(false) 170bool(false) 171-- Iteration 2 -- 172bool(false) 173bool(false) 174bool(false) 175bool(false) 176bool(false) 177bool(false) 178bool(false) 179-- Iteration 3 -- 180bool(false) 181bool(false) 182bool(false) 183bool(false) 184bool(false) 185bool(false) 186bool(true) 187-- Iteration 4 -- 188bool(true) 189bool(true) 190bool(true) 191bool(false) 192bool(true) 193bool(false) 194bool(true) 195-- Iteration 5 -- 196bool(false) 197bool(false) 198bool(false) 199bool(false) 200bool(false) 201bool(false) 202bool(true) 203 204*** Testing error conditions *** 205Cannot access offset of type array on array 206 207*** Testing operation on objects *** 208array_key_exists(): Argument #2 ($array) must be of type array, key_check given 209Done 210