private function getVarId($var)
    {
        if (is_object($var)) {
            $hash = spl_object_hash($var);
        } elseif (is_resource($var)) {
            $hash = intval($var) . '#resource#' . get_resource_type($var);
        } elseif (is_array($var) && $this->checkArrayRecursion($var)) {
            $hash = $this->getArrayId($var);
        }

        if (isset($hash)) {
            if (isset($this->hash[$hash])) {
                return $this->hash[$hash];
            }

            return $this->hash[$hash] = self::uid();
        }

        return null;
    }