New PHP testcases for array_diff_ukey function

This commit is contained in:
Sanjay Mantoor 2008-10-22 05:53:36 +00:00
parent 1d5ba8bb21
commit 5a37a48082
11 changed files with 1491 additions and 0 deletions

View File

@ -0,0 +1,55 @@
--TEST--
Test array_diff_ukey() function : error conditions
--FILE--
<?php
/* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func)
* Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments.
* Source code: ext/standard/array.c
*/
echo "*** Testing array_diff_ukey() : error conditions ***\n";
// Initialize
$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
$extra_arg = 10;
function key_compare_func($key1, $key2)
{
if ($key1 == $key2) {
return 0;
}
return ($key1 > $key2)? 1:-1;
}
//Test array_diff_ukey with one more than the expected number of arguments
echo "\n-- Testing array_diff_ukey() function with more than expected no. of arguments --\n";
var_dump( array_diff_ukey($array1, $array2, 'key_compare_func', $extra_arg) );
// Testing array_diff_ukey with one less than the expected number of arguments
echo "\n-- Testing array_diff_ukey() function with less than expected no. of arguments --\n";
var_dump( array_diff_ukey($array1, $array2) );
// Testing array_diff_ukey with one less than the expected number of arguments
echo "\n-- Testing array_diff_ukey() function with no arguments --\n";
var_dump( array_diff_ukey() );
?>
===DONE===
--EXPECTF--
*** Testing array_diff_ukey() : error conditions ***
-- Testing array_diff_ukey() function with more than expected no. of arguments --
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
-- Testing array_diff_ukey() function with less than expected no. of arguments --
Warning: array_diff_ukey(): at least 3 parameters are required, 2 given in %s on line %d
NULL
-- Testing array_diff_ukey() function with no arguments --
Warning: array_diff_ukey(): at least 3 parameters are required, 0 given in %s on line %d
NULL
===DONE===

View File

@ -0,0 +1,318 @@
--TEST--
Test array_diff_ukey() function : usage variation - Passing unexpected values to first argument
--FILE--
<?php
/* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func)
* Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments.
* Source code: ext/standard/array.c
*/
echo "*** Testing array_diff_ukey() : usage variation ***\n";
// Initialise function arguments not being substituted (if any)
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
$array3 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
function key_compare_func($key1, $key2)
{
if ($key1 == $key2) {
return 0;
}
return ($key1 > $key2)? 1:-1;
}
//get an unset variable
$unset_var = 10;
unset ($unset_var);
//resource variable
$fp = fopen(__FILE__, "r");
// define some classes
class classWithToString
{
public function __toString() {
return "Class A object";
}
}
class classWithoutToString
{
}
// heredoc string
$heredoc = <<<EOT
hello world
EOT;
//array of values to iterate over
$inputs = array(
// int data
'int 0' => 0,
'int 1' => 1,
'int 12345' => 12345,
'int -12345' => -2345,
// float data
'float 10.5' => 10.5,
'float -10.5' => -10.5,
'float 12.3456789000e10' => 12.3456789000e10,
'float -12.3456789000e10' => -12.3456789000e10,
'float .5' => .5,
// null data
'uppercase NULL' => NULL,
'lowercase null' => null,
// boolean data
'lowercase true' => true,
'lowercase false' =>false,
'uppercase TRUE' =>TRUE,
'uppercase FALSE' =>FALSE,
// empty data
'empty string DQ' => "",
'empty string SQ' => '',
// string data
'string DQ' => "string",
'string SQ' => 'string',
'mixed case string' => "sTrInG",
'heredoc' => $heredoc,
// object data
'instance of classWithToString' => new classWithToString(),
'instance of classWithoutToString' => new classWithoutToString(),
// undefined data
'undefined var' => @$undefined_var,
// unset data
'unset var' => @$unset_var,
// resource data
'resource' => $fp,
);
// loop through each element of the array for arr1
foreach($inputs as $key =>$value) {
echo "\n--$key--\n";
var_dump( array_diff_ukey($value, $array2, 'key_compare_func') );
var_dump( array_diff_ukey($value, $array2, $array3, 'key_compare_func') );
};
fclose($fp);
?>
===DONE===
--EXPECTF--
*** Testing array_diff_ukey() : usage variation ***
--int 0--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--int 1--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--int 12345--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--int -12345--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--float 10.5--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--float -10.5--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--float 12.3456789000e10--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--float -12.3456789000e10--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--float .5--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--uppercase NULL--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--lowercase null--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--lowercase true--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--lowercase false--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--uppercase TRUE--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--uppercase FALSE--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--empty string DQ--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--empty string SQ--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--string DQ--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--string SQ--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--mixed case string--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--heredoc--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--instance of classWithToString--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--instance of classWithoutToString--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--undefined var--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--unset var--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
--resource--
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d
NULL
===DONE===

View File

@ -0,0 +1,40 @@
--TEST--
Test array_diff_ukey() function : usage variation - Passing non-existing function name to callback
--FILE--
<?php
/* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func)
* Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments.
* Source code: ext/standard/array.c
*/
echo "*** Testing array_diff_ukey() : usage variation ***\n";
//Initialize variables
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
//function name within double quotes
var_dump( array_diff_ukey($array1, $array1, "unknown_function") );
//function name within single quotes
var_dump( array_diff_ukey($array1, $array1, 'unknown_function') );
//function name without quotes
var_dump( array_diff_ukey($array1, $array1, unknown_function) );
?>
===DONE===
--EXPECTF--
*** Testing array_diff_ukey() : usage variation ***
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, function 'unknown_function' not found or invalid function name in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, function 'unknown_function' not found or invalid function name in %s on line %d
NULL
Notice: Use of undefined constant unknown_function - assumed 'unknown_function' in %s on line %d
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, function 'unknown_function' not found or invalid function name in %s on line %d
NULL
===DONE===

View File

@ -0,0 +1,322 @@
--TEST--
Test array_diff_ukey() function : usage variation - Passing unexpected values to second argument
--FILE--
<?php
/* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func)
* Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments.
* Source code: ext/standard/array.c
*/
echo "*** Testing array_diff_ukey() : usage variation ***\n";
// Initialize function arguments not being substituted (if any)
$array1 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
$array3 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
//Initialize key_comp_func of type callback
function key_compare_func($key1, $key2)
{
if ($key1 == $key2) {
return 0;
}
return ($key1 > $key2)? 1:-1;
}
//get an unset variable
$unset_var = 10;
unset ($unset_var);
//resource variable
$fp = fopen(__FILE__, "r");
// define some classes
class classWithToString
{
public function __toString() {
return "Class A object";
}
}
class classWithoutToString
{
}
// heredoc string
$heredoc = <<<EOT
hello world
EOT;
//array of values to iterate over
$inputs = array(
// int data
'int 0' => 0,
'int 1' => 1,
'int 12345' => 12345,
'int -12345' => -2345,
// float data
'float 10.5' => 10.5,
'float -10.5' => -10.5,
'float 12.3456789000e10' => 12.3456789000e10,
'float -12.3456789000e10' => -12.3456789000e10,
'float .5' => .5,
// null data
'uppercase NULL' => NULL,
'lowercase null' => null,
// boolean data
'lowercase true' => true,
'lowercase false' =>false,
'uppercase TRUE' =>TRUE,
'uppercase FALSE' =>FALSE,
// empty data
'empty string DQ' => "",
'empty string SQ' => '',
// string data
'string DQ' => "string",
'string SQ' => 'string',
'mixed case string' => "sTrInG",
'heredoc' => $heredoc,
// object data
'instance of classWithToString' => new classWithToString(),
'instance of classWithoutToString' => new classWithoutToString(),
// undefined data
'undefined var' => @$undefined_var,
// unset data
'unset var' => @$unset_var,
// resource data
'resource' => $fp,
);
// loop through each element of the array for arr2
foreach($inputs as $key =>$value) {
echo "\n--$key--\n";
var_dump( array_diff_ukey($array1, $value, 'key_compare_func') );
var_dump( array_diff_ukey($array1, $value, $array3, 'key_compare_func') );
};
fclose($fp);
?>
===DONE===
--EXPECTF--
*** Testing array_diff_ukey() : usage variation ***
--int 0--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--int 1--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--int 12345--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--int -12345--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--float 10.5--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--float -10.5--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--float 12.3456789000e10--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--float -12.3456789000e10--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--float .5--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--uppercase NULL--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--lowercase null--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--lowercase true--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--lowercase false--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--uppercase TRUE--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--uppercase FALSE--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--empty string DQ--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--empty string SQ--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--string DQ--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--string SQ--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--mixed case string--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--heredoc--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--instance of classWithToString--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--instance of classWithoutToString--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--undefined var--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--unset var--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
--resource--
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d
NULL
===DONE===

View File

@ -0,0 +1,240 @@
--TEST--
Test array_diff_ukey() function : usage variation - Passing unexpected values to third optional argument
--FILE--
<?php
/* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func)
* Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments.
* Source code: ext/standard/array.c
*/
echo "*** Testing array_diff_ukey() : usage variation ***\n";
// Initialise function arguments not being substituted (if any)
$array1 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
$array2 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
function key_compare_func($key1, $key2)
{
if ($key1 == $key2) {
return 0;
}
return ($key1 > $key2)? 1:-1;
}
//get an unset variable
$unset_var = 10;
unset ($unset_var);
// resource variable
$fp = fopen(__FILE__, "r");
// define some classes
class classWithToString
{
public function __toString() {
return "Class A object";
}
}
class classWithoutToString
{
}
// heredoc string
$heredoc = <<<EOT
hello world
EOT;
//array of values to iterate over
$inputs = array(
// int data
'int 0' => 0,
'int 1' => 1,
'int 12345' => 12345,
'int -12345' => -2345,
// float data
'float 10.5' => 10.5,
'float -10.5' => -10.5,
'float 12.3456789000e10' => 12.3456789000e10,
'float -12.3456789000e10' => -12.3456789000e10,
'float .5' => .5,
// null data
'uppercase NULL' => NULL,
'lowercase null' => null,
// boolean data
'lowercase true' => true,
'lowercase false' =>false,
'uppercase TRUE' =>TRUE,
'uppercase FALSE' =>FALSE,
// empty data
'empty string DQ' => "",
'empty string SQ' => '',
// string data
'string DQ' => "string",
'string SQ' => 'string',
'mixed case string' => "sTrInG",
'heredoc' => $heredoc,
// object data
'instance of classWithToString' => new classWithToString(),
'instance of classWithoutToString' => new classWithoutToString(),
// undefined data
'undefined var' => @$undefined_var,
// unset data
'unset var' => @$unset_var,
// resource data
'resource' => $fp,
);
// loop through each element of the array for key_comp_func
foreach($inputs as $key =>$value) {
echo "\n--$key--\n";
var_dump( array_diff_ukey($array1, $array2, $value, 'key_compare_func') );
};
fclose($fp);
?>
===DONE===
--EXPECTF--
*** Testing array_diff_ukey() : usage variation ***
--int 0--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--int 1--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--int 12345--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--int -12345--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--float 10.5--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--float -10.5--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--float 12.3456789000e10--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--float -12.3456789000e10--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--float .5--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--uppercase NULL--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--lowercase null--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--lowercase true--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--lowercase false--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--uppercase TRUE--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--uppercase FALSE--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--empty string DQ--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--empty string SQ--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--string DQ--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--string SQ--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--mixed case string--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--heredoc--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--instance of classWithToString--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--instance of classWithoutToString--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--undefined var--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--unset var--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
--resource--
Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d
NULL
===DONE===

View File

@ -0,0 +1,254 @@
--TEST--
Test array_diff_ukey() function : usage variation - Passing unexpected values to callback argument
--FILE--
<?php
/* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func)
* Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments.
* Source code: ext/standard/array.c
*/
echo "*** Testing array_diff_ukey() : usage variation ***\n";
// Initialise function arguments not being substituted (if any)
$array1 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
$array2 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$array3 = array(1, 2, 3, 4, 5);
//get an unset variable
$unset_var = 10;
unset ($unset_var);
//resource variable
$fp = fopen(__FILE__, "r");
// define some classes
class classWithToString
{
public function __toString() {
return "Class A object";
}
}
class classWithoutToString
{
}
// heredoc string
$heredoc = <<<EOT
hello world
EOT;
//array of values to iterate over
$inputs = array(
// int data
'int 0' => 0,
'int 1' => 1,
'int 12345' => 12345,
'int -12345' => -12345,
// float data
'float 10.5' => 10.5,
'float -10.5' => -10.5,
'float 12.3456789000e10' => 12.3456789000e10,
'float -12.3456789000e10' => -12.3456789000e10,
'float .5' => .5,
// null data
'uppercase NULL' => NULL,
'lowercase null' => null,
// boolean data
'lowercase true' => true,
'lowercase false' =>false,
'uppercase TRUE' =>TRUE,
'uppercase FALSE' =>FALSE,
// object data
'instance of classWithToString' => new classWithToString(),
'instance of classWithoutToString' => new classWithoutToString(),
// undefined data
'undefined var' => @$undefined_var,
// unset data
'unset var' => @$unset_var,
// resource data
'resource' => $fp,
);
// loop through each element of the array for ...
foreach($inputs as $key =>$value) {
echo "\n--$key--\n";
var_dump( array_diff_ukey($array1, $array2, $value) );
var_dump( array_diff_ukey($array1, $array2, $array3, $value) );
};
fclose($fp);
?>
===DONE===
--EXPECTF--
*** Testing array_diff_ukey() : usage variation ***
--int 0--
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
--int 1--
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
--int 12345--
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
--int -12345--
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
--float 10.5--
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
--float -10.5--
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
--float 12.3456789000e10--
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
--float -12.3456789000e10--
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
--float .5--
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
--uppercase NULL--
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
--lowercase null--
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
--lowercase true--
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
--lowercase false--
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
--uppercase TRUE--
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
--uppercase FALSE--
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
--instance of classWithToString--
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
--instance of classWithoutToString--
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
--undefined var--
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
--unset var--
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
--resource--
Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d
NULL
Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d
NULL
===DONE===

View File

@ -0,0 +1,54 @@
--TEST--
Test array_diff_ukey() function : usage variation - Passing multi-dimensional array
--FILE--
<?php
/* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func)
* Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments. User supplied function is used for comparing the keys. This function is like array_udiff() but works on the keys instead of the values. The associativity is preserved.
* Source code: ext/standard/array.c
*/
echo "*** Testing array_diff_ukey() : usage variation ***\n";
// Initialise function arguments not being substituted (if any)
$array1 = array(
'first' => array('blue' => 1, 'red' => 2),
'second' => array('yellow' => 7),
'third' => array(0 => 'zero'),
);
$array2 = array (
'first' => array('blue' => 1, 'red' => 2,),
'second' => array('cyan' => 8),
'fourth' => array(2 => 'two'),
);
echo "\n-- Testing array_diff_ukey() function with multi dimensional array --\n";
var_dump( array_diff_ukey($array1, $array2, 'strcasecmp') );
var_dump( array_diff_ukey($array2, $array1, 'strcasecmp') );
?>
===DONE===
--EXPECTF--
*** Testing array_diff_ukey() : usage variation ***
-- Testing array_diff_ukey() function with multi dimensional array --
array(1) {
["third"]=>
array(1) {
[0]=>
string(4) "zero"
}
}
array(1) {
["fourth"]=>
array(1) {
[2]=>
string(3) "two"
}
}
===DONE===

View File

@ -0,0 +1,65 @@
--TEST--
Test array_diff_ukey() function : usage variation - Passing integer indexed array
--FILE--
<?php
/* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func)
* Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments.
* Source code: ext/standard/array.c
*/
echo "*** Testing array_diff_ukey() : usage variation ***\n";
// Initialise function arguments not being substituted (if any)
$input_array = array(-07 => '-07', 0xA => '0xA');
$input_arrays = array(
'decimal indexed' => array(10 => '10', '-17' => '-17'),
'octal indexed' => array(-011 => '-011', 012 => '012'),
'hexa indexed' => array(0x12 => '0x12', -0x7 => '-0x7', ),
);
function key_compare_func($key1, $key2)
{
return strcasecmp($key1, $key2);
}
foreach($input_arrays as $key =>$value) {
echo "\n--$key--\n";
var_dump( array_diff_ukey($value, $input_array, 'key_compare_func') );
var_dump( array_diff_ukey($input_array, $value, 'key_compare_func') );
}
?>
===DONE===
--EXPECTF--
*** Testing array_diff_ukey() : usage variation ***
--decimal indexed--
array(1) {
[-17]=>
string(3) "-17"
}
array(1) {
[-7]=>
string(3) "-07"
}
--octal indexed--
array(1) {
[-9]=>
string(4) "-011"
}
array(1) {
[-7]=>
string(3) "-07"
}
--hexa indexed--
array(1) {
[18]=>
string(4) "0x12"
}
array(1) {
[10]=>
string(3) "0xA"
}
===DONE===

View File

@ -0,0 +1,42 @@
--TEST--
Test array_diff_ukey() function : usage variation - Passing float indexed array
--FILE--
<?php
/* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func)
* Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments.
* Source code: ext/standard/array.c
*/
echo "*** Testing array_diff_ukey() : usage variation ***\n";
// Initialise function arguments not being substituted (if any)
$input_array = array(0 => '0', 10 => '10', -10 => '-10', 20 =>'20');
$float_indx_array = array(0.0 => '0.0', 10.5 => '10.5', -30.5 => '-30.5');
function key_compare_func($key1, $key2)
{
return strcasecmp($key1, $key2);
}
echo "\n-- Testing array_diff_ukey() function with float indexed array --\n";
var_dump( array_diff_ukey($float_indx_array, $input_array, 'key_compare_func') );
var_dump( array_diff_ukey($input_array, $float_indx_array, 'key_compare_func') );
?>
===DONE===
--EXPECTF--
*** Testing array_diff_ukey() : usage variation ***
-- Testing array_diff_ukey() function with float indexed array --
array(1) {
[-30]=>
string(5) "-30.5"
}
array(2) {
[-10]=>
string(3) "-10"
[20]=>
string(2) "20"
}
===DONE===

View File

@ -0,0 +1,42 @@
--TEST--
Test array_diff_ukey() function : usage variation - Passing boolean indexed array
--FILE--
<?php
/* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func)
* Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments.
* Source code: ext/standard/array.c
*/
echo "*** Testing array_diff_ukey() : usage variation ***\n";
// Initialise function arguments not being substituted (if any)
$input_array = array(0 => '0', 1 => '1', -10 => '-10', 'true' => 1, 'false' => 0);
$boolean_indx_array = array(true => 'boolt', false => 'boolf', TRUE => 'boolT', FALSE => 'boolF');
function key_compare_func($key1, $key2)
{
return strcasecmp($key1, $key2);
}
echo "\n-- Testing array_diff_ukey() function with boolean indexed array --\n";
var_dump( array_diff_ukey($boolean_indx_array, $input_array, 'key_compare_func') );
var_dump( array_diff_ukey($input_array, $boolean_indx_array, 'key_compare_func') );
?>
===DONE===
--EXPECTF--
*** Testing array_diff_ukey() : usage variation ***
-- Testing array_diff_ukey() function with boolean indexed array --
array(0) {
}
array(3) {
[-10]=>
string(3) "-10"
["true"]=>
int(1)
["false"]=>
int(0)
}
===DONE===

View File

@ -0,0 +1,59 @@
--TEST--
Test array_diff_ukey() function : usage variation - Passing null,unset and undefined variable indexed array
--FILE--
<?php
/* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func)
* Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments.
* Source code: ext/standard/array.c
*/
echo "*** Testing array_diff_ukey() : usage variation ***\n";
// Initialise function arguments not being substituted (if any)
$input_array = array(10 => '10', "" => 'empty');
//get an unset variable
$unset_var = 10;
unset ($unset_var);
$input_arrays = array(
'null indexed' => array(NULL => 'null 1', null => 'null 2'),
'undefined indexed' => array(@$undefined_var => 'undefined'),
'unset indexed' => array(@$unset_var => 'unset'),
);
foreach($input_arrays as $key =>$value) {
echo "\n--$key--\n";
var_dump( array_diff_ukey($value, $input_array, 'strcasecmp') );
var_dump( array_diff_ukey($input_array, $value, 'strcasecmp') );
}
?>
===DONE===
--EXPECTF--
*** Testing array_diff_ukey() : usage variation ***
--null indexed--
array(0) {
}
array(1) {
[10]=>
string(2) "10"
}
--undefined indexed--
array(0) {
}
array(1) {
[10]=>
string(2) "10"
}
--unset indexed--
array(0) {
}
array(1) {
[10]=>
string(2) "10"
}
===DONE===