code: public function convertParameter($arrMatch)
      {
          list($strSource, $strQuery) = explode('?', $arrMatch[1], 2);
          parse_str($strQuery, $arrArgs);
          $arrName = (array) $arrArgs['name'];
  
          $var = $this->getValueFromSource($strSource, array_shift($arrName), $arrArgs);
  
          $index = 0;
          $count = count($arrName);
          while ($index < $count && is_array($var)) {
              $var = $var[$arrName[$index++]];
          }
  
          if ($index != $count || $var === null) {
              if (array_key_exists('default', $arrArgs) && (null !== $arrArgs['default'])) {
                  $this->addParameter($arrArgs['default']);
  
                  return '?';
              } else {
                  return 'NULL';
              }
          }
  
          // Treat as scalar value.
          if (!isset($arrArgs['aggregate'])) {
              $this->addParameter($var);
  
              return '?';
          }
  
          return $this->convertParameterAggregate($var, $arrArgs);
      }
docs: Convert a parameter in the query string.
  
  @param array $arrMatch The match from the preg_replace_all call in parseRequestVars().
  
  @return string
  
  @internal Only to be used via parseRequestVars().