1--TEST-- 2Test array_diff() function : usage variations - array with different data types as values 3--FILE-- 4<?php 5/* Prototype : array array_diff(array $arr1, array $arr2 [, array ...]) 6 * Description: Returns the entries of $arr1 that have values which are not 7 * present in any of the others arguments. 8 * Source code: ext/standard/array.c 9 */ 10 11/* 12 * Test how array_diff() compares indexed arrays containing different 13 * data types as values in place of $arr2 14 */ 15 16echo "*** Testing array_diff() : usage variations ***\n"; 17 18// Initialise function arguments not being substituted (if any) 19$array = array(1, 2); 20 21//get an unset variable 22$unset_var = 10; 23unset ($unset_var); 24 25//get heredoc 26$heredoc = <<<END 27This is a heredoc 28END; 29 30//array of values to iterate over 31$values = array( 32 33/*1*/"empty array" => array(), 34 35/*2*/ 36"int" => array( 37 // int data 38 0, 39 1, 40 12345, 41 -2345), 42 43/*3*/ 44"float" => array( 45 // float data 46 10.5, 47 -10.5, 48 12.3456789000e10, 49 12.3456789000E-10, 50 .5), 51 52/*4*/ 53"null" => array( 54 // null data 55 NULL, 56 null), 57 58/*5*/ 59"boolean" => array( 60 // boolean data 61 true, 62 false, 63 TRUE, 64 FALSE), 65 66/*6*/ 67"empty" => array( 68 // empty data 69 "", 70 ''), 71 72/*7*/ 73"string" => array( 74 // string data 75 "string", 76 'string', 77 $heredoc), 78 79/*8*/ 80"binary" => array( 81 // binary data 82 b"binary", 83 (binary)"binary"), 84 85/*9*/ 86"undefined" => array( 87 // undefined data 88 @$undefined_var), 89 90/*10*/ 91"unset" => array( 92 // unset data 93 @$unset_var) 94); 95 96// loop through each element of the array for $arr2 97$iterator = 1; 98foreach($values as $value) { 99 echo "\n Iteration: $iterator \n"; 100 var_dump( array_diff($array, $value) ); 101 $iterator++; 102}; 103 104echo "Done"; 105?> 106--EXPECTF-- 107*** Testing array_diff() : usage variations *** 108 109 Iteration: 1 110array(2) { 111 [0]=> 112 int(1) 113 [1]=> 114 int(2) 115} 116 117 Iteration: 2 118array(1) { 119 [1]=> 120 int(2) 121} 122 123 Iteration: 3 124array(2) { 125 [0]=> 126 int(1) 127 [1]=> 128 int(2) 129} 130 131 Iteration: 4 132array(2) { 133 [0]=> 134 int(1) 135 [1]=> 136 int(2) 137} 138 139 Iteration: 5 140array(1) { 141 [1]=> 142 int(2) 143} 144 145 Iteration: 6 146array(2) { 147 [0]=> 148 int(1) 149 [1]=> 150 int(2) 151} 152 153 Iteration: 7 154array(2) { 155 [0]=> 156 int(1) 157 [1]=> 158 int(2) 159} 160 161 Iteration: 8 162array(2) { 163 [0]=> 164 int(1) 165 [1]=> 166 int(2) 167} 168 169 Iteration: 9 170array(2) { 171 [0]=> 172 int(1) 173 [1]=> 174 int(2) 175} 176 177 Iteration: 10 178array(2) { 179 [0]=> 180 int(1) 181 [1]=> 182 int(2) 183} 184Done