示例#1
0
 /**
  * Test that map() applies callback functions to all elements in the array.
  */
 public function testMap()
 {
     $data = array('foo' => 'bar', 'boolean' => true, 'null' => null, 'array' => array(), 'number' => 123);
     $this->assertEquals(array('foo' => 'BAR', 'boolean' => true, 'null' => null, 'array' => array(), 'number' => 123), Hash::map($data, 'strtoupper'));
     $this->assertEquals(array('foo' => 0, 'boolean' => 1, 'null' => 0, 'array' => array(), 'number' => 123), Hash::map($data, 'intval'));
     $this->assertEquals(array('foo' => 'string', 'boolean' => 'true', 'null' => 'null', 'array' => array(), 'number' => 'number'), Hash::map($data, function ($value) {
         if (is_numeric($value)) {
             return 'number';
         } elseif (is_bool($value)) {
             return $value ? 'true' : 'false';
         } elseif (is_null($value)) {
             return 'null';
         } elseif (is_string($value)) {
             return 'string';
         } else {
             return $value;
         }
     }));
 }