Annotation of embedaddon/php/ext/standard/tests/array/array_flip_variation2.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Test array_flip() function : usage variations - 'input' array with different keys
                      3: --FILE--
                      4: <?php
                      5: /* Prototype  : array array_flip(array $input)
                      6:  * Description: Return array with key <-> value flipped 
                      7:  * Source code: ext/standard/array.c
                      8: */
                      9: 
                     10: /*
                     11: * Trying different keys in $input array argument
                     12: */
                     13: 
                     14: echo "*** Testing array_flip() : different keys for 'input' array argument ***\n";
                     15: 
                     16: // different heredoc strings
                     17: $empty_heredoc = <<<EOT1
                     18: EOT1;
                     19:   
                     20: $simple_heredoc = <<<EOT4
                     21: simple
                     22: EOT4;
                     23: 
                     24: $multiline_heredoc = <<<EOT7
                     25: multiline heredoc with 123 and
                     26: speci@! ch@r$...checking\nand\talso
                     27: EOT7;
                     28:   
                     29: $input = array(
                     30:   // default key
                     31:   'one',  //expected: default key 0, value will be replaced by 'bool_key4'  
                     32: 
                     33:   // numeric keys
                     34:   1 => 'int_key', // expected: value will be replaced by 'bool_key3'
                     35:   -2 => 'negative_key',
                     36:   8.9 => 'float_key', 
                     37:   012 => 'octal_key',
                     38:   0x34 => 'hex_key',
                     39: 
                     40:   // string keys
                     41:   'key' => 'string_key1',
                     42:   "two" => 'string_key2',
                     43:   '' => 'string_key3',
                     44:   "" => 'string_key4',
                     45:   " " => 'string_key5',
                     46:   
                     47:   // bool keys
                     48:   true => 'bool_key1',
                     49:   false => 'bool_key2',
                     50:   TRUE => 'bool_key3', 
                     51:   FALSE => 'bool_key4',
                     52: 
                     53:   // null keys
                     54:   null => 'null_key1',  // expected: value will be replaced by 'null_key2'
                     55:   NULL => 'null_key2',
                     56: 
                     57:   // binary key
                     58:   "a".chr(0)."b" => 'binary_key1',
                     59:   b"binary" => 'binary_key2',
                     60: 
                     61:   //heredoc keys
                     62:   $empty_heredoc => 'empty_heredoc',
                     63:   $simple_heredoc => 'simple_heredoc',
                     64:   $multiline_heredoc => 'multiline_heredoc',
                     65: );
                     66:    
                     67: var_dump( array_flip($input) );
                     68: 
                     69: echo "Done"
                     70: ?>
                     71: --EXPECTF--
                     72: *** Testing array_flip() : different keys for 'input' array argument ***
                     73: array(14) {
                     74:   ["bool_key4"]=>
                     75:   int(0)
                     76:   ["bool_key3"]=>
                     77:   int(1)
                     78:   ["negative_key"]=>
                     79:   int(-2)
                     80:   ["float_key"]=>
                     81:   int(8)
                     82:   ["octal_key"]=>
                     83:   int(10)
                     84:   ["hex_key"]=>
                     85:   int(52)
                     86:   ["string_key1"]=>
                     87:   string(3) "key"
                     88:   ["string_key2"]=>
                     89:   string(3) "two"
                     90:   ["empty_heredoc"]=>
                     91:   string(0) ""
                     92:   ["string_key5"]=>
                     93:   string(1) " "
                     94:   ["binary_key1"]=>
                     95:   string(3) "ab"
                     96:   ["binary_key2"]=>
                     97:   string(6) "binary"
                     98:   ["simple_heredoc"]=>
                     99:   string(6) "simple"
                    100:   ["multiline_heredoc"]=>
                    101:   string(6%d) "multiline heredoc with 123 and
                    102: speci@! ch@r$...checking
                    103: and    also"
                    104: }
                    105: Done

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>