Exakat\Tasks\Load::processStatic PHP Метод

processStatic() приватный Метод

private processStatic ( )
    private function processStatic()
    {
        if ($this->tokens[$this->id + 1][0] === T_DOUBLE_COLON || $this->tokens[$this->id - 1][0] === T_INSTANCEOF) {
            $id = $this->processSingle('Identifier');
            $this->setAtom($id, array('fullnspath' => '\\static', 'variadic' => false));
            return $id;
        } elseif ($this->tokens[$this->id + 1][0] === T_OPEN_PARENTHESIS) {
            $nameId = $this->addAtom('Identifier');
            $this->setAtom($nameId, array('code' => $this->tokens[$this->id][1], 'fullcode' => $this->tokens[$this->id][1], 'line' => $this->tokens[$this->id][2], 'variadic' => false, 'token' => $this->getToken($this->tokens[$this->id][0]), 'fullnspath' => '\\static'));
            $this->pushExpression($nameId);
            return $this->processFunctioncall();
        } elseif ($this->tokens[$this->id + 1][0] === T_VARIABLE) {
            if (($this->isContext(self::CONTEXT_CLASS) || $this->isContext(self::CONTEXT_TRAIT)) && !$this->isContext(self::CONTEXT_FUNCTION)) {
                // something like public static
                $this->processOptions('Static');
                return $this->processSGVariable('Ppp');
            } else {
                return $this->processStaticVariable();
            }
        } elseif ($this->isContext(self::CONTEXT_NEW)) {
            // new static; (no parenthesis, as tested above)
            $nameId = $this->processExit();
            return $nameId;
        } else {
            return $this->processOptions('Static');
        }
    }
Load