original_string: private function _first(callable $callback = null)
      {
          $values = $this->getValues();
          if ($callback){
              foreach($values as $key => $value){
                  if ($callback($value, $key)){
                      return $value;
                  }
              }
          }
          else{
              return empty($values) ? null : $values[0];
          }
          return null;
      }
code: private function _first(callable $callback = null)
      {
          $values = $this->getValues();
          if ($callback){
              foreach($values as $key => $value){
                  if ($callback($value, $key)){
                      return $value;
                  }
              }
          }
          else{
              return empty($values) ? null : $values[0];
          }
          return null;
      }
code_tokens: private function _first ( callable $ callback = null ) { $ values = $ this -> getValues ( ) ; if ( $ callback ) { foreach ( $ values as $ key => $ value ) { if ( $ callback ( $ value , $ key ) ) { return $ value ; } } } else { return empty ( $ values ) ? null : $ values [ 0 ] ; } return null ; }
docstring: Get head element of the array
  
  @param callable $callback
  
  @return mixed
docstring_tokens: Get head element of the array