123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- --TEST--
- Test array_map() function : usage variations - references
- --FILE--
- <?php
- /* Prototype : array array_map(mixed callback, array input1 [, array input2 ,...])
- * Description: Applies the callback to the elements in given arrays.
- * Source code: ext/standard/array.c
- */
- echo "*** Testing array_map() : references ***\n";
- $arr = array("k1" => "v1","k2"=>"v2");
- $arr[]=&$arr["k1"];
- $arr[]=&$arr;
- function cb1 ($a) {var_dump ($a);return array ($a);};
- function cb2 (&$a) {var_dump ($a);return array (&$a);};
- var_dump( array_map("cb1", $arr));
- var_dump( array_map("cb2", $arr,$arr));
- var_dump( array_map(null, $arr));
- var_dump( array_map(null, $arr, $arr));
- // break cycles
- $arr[0] = null;
- $arr[1] = null;
- echo "Done";
- ?>
- --EXPECT--
- *** Testing array_map() : references ***
- string(2) "v1"
- string(2) "v2"
- string(2) "v1"
- array(4) {
- ["k1"]=>
- &string(2) "v1"
- ["k2"]=>
- string(2) "v2"
- [0]=>
- &string(2) "v1"
- [1]=>
- &array(4) {
- ["k1"]=>
- &string(2) "v1"
- ["k2"]=>
- string(2) "v2"
- [0]=>
- &string(2) "v1"
- [1]=>
- *RECURSION*
- }
- }
- array(4) {
- ["k1"]=>
- array(1) {
- [0]=>
- string(2) "v1"
- }
- ["k2"]=>
- array(1) {
- [0]=>
- string(2) "v2"
- }
- [0]=>
- array(1) {
- [0]=>
- string(2) "v1"
- }
- [1]=>
- array(1) {
- [0]=>
- array(4) {
- ["k1"]=>
- &string(2) "v1"
- ["k2"]=>
- string(2) "v2"
- [0]=>
- &string(2) "v1"
- [1]=>
- &array(4) {
- ["k1"]=>
- &string(2) "v1"
- ["k2"]=>
- string(2) "v2"
- [0]=>
- &string(2) "v1"
- [1]=>
- *RECURSION*
- }
- }
- }
- }
- string(2) "v1"
- string(2) "v2"
- string(2) "v1"
- array(4) {
- ["k1"]=>
- &string(2) "v1"
- ["k2"]=>
- string(2) "v2"
- [0]=>
- &string(2) "v1"
- [1]=>
- &array(4) {
- ["k1"]=>
- &string(2) "v1"
- ["k2"]=>
- string(2) "v2"
- [0]=>
- &string(2) "v1"
- [1]=>
- *RECURSION*
- }
- }
- array(4) {
- [0]=>
- array(1) {
- [0]=>
- &string(2) "v1"
- }
- [1]=>
- array(1) {
- [0]=>
- string(2) "v2"
- }
- [2]=>
- array(1) {
- [0]=>
- &string(2) "v1"
- }
- [3]=>
- array(1) {
- [0]=>
- &array(4) {
- ["k1"]=>
- &string(2) "v1"
- ["k2"]=>
- string(2) "v2"
- [0]=>
- &string(2) "v1"
- [1]=>
- *RECURSION*
- }
- }
- }
- array(4) {
- ["k1"]=>
- &string(2) "v1"
- ["k2"]=>
- string(2) "v2"
- [0]=>
- &string(2) "v1"
- [1]=>
- &array(4) {
- ["k1"]=>
- &string(2) "v1"
- ["k2"]=>
- string(2) "v2"
- [0]=>
- &string(2) "v1"
- [1]=>
- *RECURSION*
- }
- }
- array(4) {
- [0]=>
- array(2) {
- [0]=>
- &string(2) "v1"
- [1]=>
- &string(2) "v1"
- }
- [1]=>
- array(2) {
- [0]=>
- string(2) "v2"
- [1]=>
- string(2) "v2"
- }
- [2]=>
- array(2) {
- [0]=>
- &string(2) "v1"
- [1]=>
- &string(2) "v1"
- }
- [3]=>
- array(2) {
- [0]=>
- &array(4) {
- ["k1"]=>
- &string(2) "v1"
- ["k2"]=>
- string(2) "v2"
- [0]=>
- &string(2) "v1"
- [1]=>
- *RECURSION*
- }
- [1]=>
- &array(4) {
- ["k1"]=>
- &string(2) "v1"
- ["k2"]=>
- string(2) "v2"
- [0]=>
- &string(2) "v1"
- [1]=>
- *RECURSION*
- }
- }
- }
- Done
|