Exemplo n.º 1
0
 /**
  * Get or set a JSON key value
  *
  * @param string $key_or_dimension       The key or JSON dimension, which value will be assigned
  * @param string $value     [optional] If specified, the value to be assigned to this key
  * @return string
  */
 public function json($key_or_dimension, $value = UNDEFINED)
 {
     if ($value == UNDEFINED) {
         // If target key is single-dimensional
         if (in_array(preg_match('/^(\\{.+\\})+$/', $key_or_dimension), [false, 0])) {
             if (isset($this->json_contents[$key_or_dimension])) {
                 return $this->json_contents[$key_or_dimension];
             }
         } else {
             return \Utils\Arrays::Traverse($this->json_contents, $key_or_dimension);
         }
         return UNDEFINED;
     }
 }
Exemplo n.º 2
0
 /**
  * Should receive values of different datatype within 2 level deeper dimension
  */
 public function testTraverse_Deep2AndDatatypeSensitive()
 {
     $result = Arrays::Traverse($this->array, "{address}{coordinates}{latitude}");
     $expected = $this->array['address']['coordinates']['latitude'];
     $this->assertEqual($result, $expected);
     // must be a float
     $this->assertIsA($result, 'float');
     $result = Arrays::Traverse($this->array, "{address}{coordinates}");
     $this->assertIsA($result, 'array');
 }