Annotation of embedaddon/php/ext/standard/tests/array/array_search_variation4.phpt, revision 1.1.1.2

1.1       misho       1: --TEST--
                      2: Test array_search() function : usage variations - haystack as resource/multi dimentional array
                      3: --FILE--
                      4: <?php
                      5: /*
                      6:  * Prototype  : mixed array_search ( mixed $needle, array $haystack [, bool $strict] )
                      7:  * Description: Searches haystack for needle and returns the key if it is found in the array, FALSE otherwise
                      8:  * Source Code: ext/standard/array.c
                      9: */
                     10: 
                     11: /* checking for Resources */
                     12: echo "*** Testing resource type with array_search() ***\n";
                     13: //file type resource
                     14: $file_handle = fopen(__FILE__, "r");
                     15: 
                     16: //directory type resource
                     17: $dir_handle = opendir( dirname(__FILE__) );
                     18: 
1.1.1.2 ! misho      19: //store resources in array for comparison.
1.1       misho      20: $resources = array($file_handle, $dir_handle);
                     21: 
                     22: // search for resouce type in the resource array
                     23: var_dump( array_search($file_handle, $resources, true) ); 
                     24: //checking for (int) type resource
                     25: var_dump( array_search((int)$dir_handle, $resources, true) ); 
                     26: 
                     27: /* Miscellenous input check  */
                     28: echo "\n*** Testing miscelleneos inputs with array_search() ***\n";
                     29: //matching "Good" in array(0,"hello"), result:true in loose type check
                     30: var_dump( array_search("Good", array(0,"hello")) ); 
                     31: //false in strict mode 
                     32: var_dump( array_search("Good", array(0,"hello"), TRUE) ); 
                     33: 
                     34: //matching integer 0 in array("this"), result:true in loose type check
                     35: var_dump( array_search(0, array("this")) );  
                     36: // false in strict mode
                     37: var_dump( array_search(0, array("this")),TRUE ); 
                     38: 
                     39: //matching string "this" in array(0), result:true in loose type check
                     40: var_dump( array_search("this", array(0)) );  
                     41: // false in stric mode
                     42: var_dump( array_search("this", array(0), TRUE) ); 
                     43: 
                     44: //checking for type FALSE in multidimensional array with loose checking, result:false in loose type check
                     45: var_dump( array_search(FALSE, 
                     46:                    array("a"=> TRUE, "b"=> TRUE, 
                     47:                          array("c"=> TRUE, "d"=>TRUE) 
                     48:                         ) 
                     49:                   ) 
                     50:         ); 
                     51: 
                     52: //matching string having integer in beginning, result:true in loose type check
                     53: var_dump( array_search('123abc', array(123)) );  
                     54: var_dump( array_search('123abc', array(123), TRUE) ); // false in strict mode 
                     55: 
                     56: echo "Done\n";
                     57: ?>
                     58: --EXPECTF--
                     59: *** Testing resource type with array_search() ***
                     60: int(0)
                     61: bool(false)
                     62: 
                     63: *** Testing miscelleneos inputs with array_search() ***
                     64: int(0)
                     65: bool(false)
                     66: int(0)
                     67: int(0)
                     68: bool(true)
                     69: int(0)
                     70: bool(false)
                     71: bool(false)
                     72: int(0)
                     73: bool(false)
                     74: Done

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