private function phpDocParam($param, $className)
    {
        $constantName = null;
        $defaultValue = $this->abstracter->UNDEFINED;
        if (\array_key_exists('defaultValue', $param)) {
            $defaultValue = $param['defaultValue'];
            if (\in_array($defaultValue, array('true','false','null'))) {
                $defaultValue = \json_decode($defaultValue);
            } elseif (\is_numeric($defaultValue)) {
                // there are no quotes around value
                $defaultValue = $defaultValue * 1;
            } elseif (\preg_match('/^array\(\s*\)|\[\s*\]$/i', $defaultValue)) {
                // empty array...
                // we're not going to eval non-empty arrays...
                //    non empty array will appear as a string
                $defaultValue = array();
            } elseif (\preg_match('/^(self::)?([^\(\)\[\]]+)$/i', $defaultValue, $matches)) {
                // appears to be a constant
                if ($matches[1]) {
                    // self
                    if (\defined($className.'::'.$matches[2])) {
                        $constantName = $matches[0];
                        $defaultValue = \constant($className.'::'.$matches[2]);
                    }
                } elseif (\defined($defaultValue)) {
                    $constantName = $defaultValue;
                    $defaultValue = \constant($defaultValue);
                }
            } else {
                $defaultValue = \trim($defaultValue, '\'"');
            }
        }
        return array(
            'constantName' => $constantName,
            'defaultValue' => $defaultValue,
        );
    }