1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 16:22:37 +01:00
Files
archived-php-src/ext/standard/tests/array/array_diff_uassoc_error.phpt
Nikita Popov 4e391ee3a3 Convert some warnings to TypeErrors in array functions
This is manual type and argument number checking code that was not
covered by the zpp move to TypeErrors.
2019-05-31 10:52:06 +02:00

61 lines
2.0 KiB
PHP

--TEST--
Test array_diff_uassoc() function : error conditions
--FILE--
<?php
/* Prototype : array array_diff_uassoc(array arr1, array arr2 [, array ...], callback key_comp_func)
* Description: Computes the difference of arrays with additional index check which is performed by a
* user supplied callback function
* Source code: ext/standard/array.c
*/
echo "*** Testing array_diff_uassoc() : error conditions ***\n";
//Initialize array
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$array3 = array("a" => "green", "red");
$array4 = array();
$extra_arg = array(1, 2, 3, 4);
function key_compare_func($a, $b)
{
if ($a === $b) {
return 0;
}
return ($a > $b)? 1:-1;
}
//Test array_diff_uassoc with one more than the expected number of arguments
echo "\n-- Testing array_diff_uassoc() function with more than expected no. of arguments --\n";
try {
var_dump( array_diff_uassoc($array1, $array2, "key_compare_func", $extra_arg) );
} catch (TypeError $e) {
echo $e->getMessage(), "\n";
}
try {
var_dump( array_diff_uassoc($array1, $array2, $array3, $array4, "key_compare_func", $extra_arg) );
} catch (TypeError $e) {
echo $e->getMessage(), "\n";
}
// Testing array_diff_uassoc with one less than the expected number of arguments
echo "\n-- Testing array_diff_uassoc() function with less than expected no. of arguments --\n";
try {
var_dump( array_diff_uassoc($array1, $array2) );
} catch (TypeError $e) {
echo $e->getMessage(), "\n";
}
?>
===DONE===
--EXPECT--
*** Testing array_diff_uassoc() : error conditions ***
-- Testing array_diff_uassoc() function with more than expected no. of arguments --
array_diff_uassoc() expects parameter 4 to be a valid callback, array must have exactly two members
array_diff_uassoc() expects parameter 6 to be a valid callback, array must have exactly two members
-- Testing array_diff_uassoc() function with less than expected no. of arguments --
At least 3 parameters are required, 2 given
===DONE===