Changeset 36101
- Timestamp:
- 12/26/2015 05:23:43 AM (8 years ago)
- Location:
- branches/4.4
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/4.4
- Property svn:mergeinfo changed
/trunk merged: 36097,36100
- Property svn:mergeinfo changed
-
branches/4.4/src/wp-includes/formatting.php
r36098 r36101 3897 3897 */ 3898 3898 function map_deep( $value, $callback ) { 3899 if ( is_array( $value ) || is_object( $value ) ) { 3900 foreach ( $value as &$item ) { 3901 $item = map_deep( $item, $callback ); 3902 } 3903 return $value; 3899 if ( is_array( $value ) ) { 3900 foreach ( $value as $index => $item ) { 3901 $value[ $index ] = map_deep( $item, $callback ); 3902 } 3903 } elseif ( is_object( $value ) ) { 3904 $object_vars = get_object_vars( $value ); 3905 foreach ( $object_vars as $property_name => $property_value ) { 3906 $value->$property_name = map_deep( $property_value, $callback ); 3907 } 3904 3908 } else { 3905 return call_user_func( $callback, $value ); 3906 } 3909 $value = call_user_func( $callback, $value ); 3910 } 3911 3912 return $value; 3907 3913 } 3908 3914 -
branches/4.4/tests/phpunit/tests/formatting/MapDeep.php
r35252 r36101 95 95 } 96 96 97 /** 98 * @ticket 35058 99 */ 100 public function test_map_deep_should_map_object_properties_passed_by_reference() { 101 $object_a = (object) array( 'var0' => 'a' ); 102 $object_b = (object) array( 'var0' => &$object_a->var0, 'var1' => 'x' ); 103 $this->assertEquals( (object) array( 104 'var0' => 'ababa', 105 'var1' => 'xbaba', 106 ), map_deep( $object_b, array( $this, 'append_baba' ) ) ); 107 } 108 109 /** 110 * @ticket 35058 111 */ 112 public function test_map_deep_should_map_array_elements_passed_by_reference() { 113 $array_a = array( 'var0' => 'a' ); 114 $array_b = array( 'var0' => &$array_a['var0'], 'var1' => 'x' ); 115 $this->assertEquals( array( 116 'var0' => 'ababa', 117 'var1' => 'xbaba', 118 ), map_deep( $array_b, array( $this, 'append_baba' ) ) ); 119 } 120 97 121 public function append_baba( $value ) { 98 122 return $value . 'baba';
Note: See TracChangeset
for help on using the changeset viewer.