diff options
| author | Ant Phillips <ant@php.net> | 2008-12-02 13:29:17 +0000 |
|---|---|---|
| committer | Ant Phillips <ant@php.net> | 2008-12-02 13:29:17 +0000 |
| commit | ba7bc0ace477f35d645c40adcb2d6d10d321872d (patch) | |
| tree | fd86eb7600e690403f63481acbcae160d59f51a6 /ext/standard/tests/array/array_diff_key_variation1.phpt | |
| parent | 8862c5d405860c0a5418eb9283796ec87105fbb9 (diff) | |
| download | php-git-ba7bc0ace477f35d645c40adcb2d6d10d321872d.tar.gz | |
Array tests: checked on PHP 5.2.6, 5.3 and 6.0 (Windows, Linux and Linux 64 bit).
Diffstat (limited to 'ext/standard/tests/array/array_diff_key_variation1.phpt')
| -rw-r--r-- | ext/standard/tests/array/array_diff_key_variation1.phpt | 391 |
1 files changed, 306 insertions, 85 deletions
diff --git a/ext/standard/tests/array/array_diff_key_variation1.phpt b/ext/standard/tests/array/array_diff_key_variation1.phpt index b322a5fa93..52b703fb77 100644 --- a/ext/standard/tests/array/array_diff_key_variation1.phpt +++ b/ext/standard/tests/array/array_diff_key_variation1.phpt @@ -1,89 +1,310 @@ --TEST-- -array_diff_key() : type variations +Test array_diff_key() function : usage variation - Passing unexpected values to first argument --FILE-- <?php -/* -* proto array array_diff_key(array arr1, array arr2 [, array ...]) -* Function is implemented in ext/standard/array.c -*/ -/* -* Testing how array_diff_key treats keys that are numbers, floating point numbers or strings. -*/ -$arr1 = array(1 => 'a', 2 => 'b', 3 => 'c', 'key1' => 'value'); -$arr2 = array(1.00 => 'a', 2.00 => 'b', 3.00 => 'c', 'key2' => 'value'); -$arr3 = array('1' => 'a', '2' => 'b', '3' => 'c', 'key3' => 'value'); -$arr4 = array('1.00' => 'a', '2.00' => 'b', '3.00' => 'c', 'key4' => 'value'); //$arr4 looks different to the other three arrays. -print "Result of comparing integers and floating point value:\n"; //1 and 1.00 are treated as the same thing -print_r(array_diff_key($arr1, $arr2)); -print_r(array_diff_key($arr2, $arr1)); -print "Result of comparing integers and strings containing an integers:\n"; //1 and the string 1 are treated as the same thing -print_r(array_diff_key($arr1, $arr3)); -print_r(array_diff_key($arr3, $arr1)); -print "Result of comparing integers and strings containing floating points:\n"; //1 and the string 1.00 are not treated as the same thing -print_r(array_diff_key($arr1, $arr4)); -print_r(array_diff_key($arr4, $arr1)); -print "Result of comparing floating points and strings containing integers:\n"; -print_r(array_diff_key($arr2, $arr3)); //1.00 and the string 1 are treated as the same thing -print_r(array_diff_key($arr3, $arr2)); -print "Result of comparing strings containing integers and strings containing floating points:\n"; //the strings 1 and 1.00 are not treated as the same thing. -print_r(array_diff_key($arr3, $arr4)); -print_r(array_diff_key($arr4, $arr3)); +/* Prototype : array array_diff_key(array arr1, array arr2 [, array ...]) + * 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_key() : usage variation ***\n"; + +// Initialise function arguments not being substituted (if any) +$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8); +$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, + + // 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_key($value, $array2) ); + var_dump( array_diff_key($value, $array2, $array3) ); +}; + +fclose($fp); ?> ---EXPECT-- -Result of comparing integers and floating point value: -Array -( - [key1] => value -) -Array -( - [key2] => value -) -Result of comparing integers and strings containing an integers: -Array -( - [key1] => value -) -Array -( - [key3] => value -) -Result of comparing integers and strings containing floating points: -Array -( - [1] => a - [2] => b - [3] => c - [key1] => value -) -Array -( - [1.00] => a - [2.00] => b - [3.00] => c - [key4] => value -) -Result of comparing floating points and strings containing integers: -Array -( - [key2] => value -) -Array -( - [key3] => value -) -Result of comparing strings containing integers and strings containing floating points: -Array -( - [1] => a - [2] => b - [3] => c - [key3] => value -) -Array -( - [1.00] => a - [2.00] => b - [3.00] => c - [key4] => value -) +===DONE=== +--EXPECTF-- +*** Testing array_diff_key() : usage variation *** + +--int 0-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--int 1-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--int 12345-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--int -12345-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--float 10.5-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--float -10.5-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--float 12.3456789000e10-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--float -12.3456789000e10-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--float .5-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--uppercase NULL-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--lowercase null-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--lowercase true-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--lowercase false-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--uppercase TRUE-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--uppercase FALSE-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--empty string DQ-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--empty string SQ-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--string DQ-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--string SQ-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--mixed case string-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--heredoc-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--instance of classWithToString-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--instance of classWithoutToString-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--undefined var-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--unset var-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +--resource-- + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL + +Warning: array_diff_key(): Argument #1 is not an array in %s on line %d +NULL +===DONE===
\ No newline at end of file |
