protected function _invokeGet($name, $default = null)
    {
        if (!self::__isInvokable($name)) {
            return null;
        }
        $is_static = self::__isStatic($name);
        $property = $this->findPropertyName($name);
        if (!empty($property)) {
            return $is_static ? @$this::${$property} : @$this->{$property};
        }
        return $default;
    }