private function isValidControl(Tokens $tokens, Token $docsToken, $controlIndex)
    {
        static $controlStructures = [
            T_FOR,
            T_FOREACH,
            T_IF,
            T_SWITCH,
            T_WHILE,
        ];

        if (!$tokens[$controlIndex]->isGivenKind($controlStructures)) {
            return false;
        }

        $index = $tokens->getNextMeaningfulToken($controlIndex);
        $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index);
        $docsContent = $docsToken->getContent();

        for ($index = $index + 1; $index < $endIndex; ++$index) {
            $token = $tokens[$index];

            if (
                $token->isGivenKind(T_VARIABLE) &&
                false !== strpos($docsContent, $token->getContent())
            ) {
                return true;
            }
        }

        return false;
    }
private function isValidControl(Tokens $tokens, Token $docsToken, $controlIndex)
    {
        static $controlStructures = [
            T_FOR,
            T_FOREACH,
            T_IF,
            T_SWITCH,
            T_WHILE,
        ];

        if (!$tokens[$controlIndex]->isGivenKind($controlStructures)) {
            return false;
        }

        $index = $tokens->getNextMeaningfulToken($controlIndex);
        $endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index);
        $docsContent = $docsToken->getContent();

        for ($index = $index + 1; $index < $endIndex; ++$index) {
            $token = $tokens[$index];

            if (
                $token->isGivenKind(T_VARIABLE) &&
                false !== strpos($docsContent, $token->getContent())
            ) {
                return true;
            }
        }

        return false;
    }
private function isValidControl ( Tokens $ tokens , Token $ docsToken , $ controlIndex ) { static $ controlStructures = [ T_FOR , T_FOREACH , T_IF , T_SWITCH , T_WHILE , ] ; if ( ! $ tokens [ $ controlIndex ] -> isGivenKind ( $ controlStructures ) ) { return false ; } $ index = $ tokens -> getNextMeaningfulToken ( $ controlIndex ) ; $ endIndex = $ tokens -> findBlockEnd ( Tokens :: BLOCK_TYPE_PARENTHESIS_BRACE , $ index ) ; $ docsContent = $ docsToken -> getContent ( ) ; for ( $ index = $ index + 1 ; $ index < $ endIndex ; ++ $ index ) { $ token = $ tokens [ $ index ] ; if ( $ token -> isGivenKind ( T_VARIABLE ) && false !== strpos ( $ docsContent , $ token -> getContent ( ) ) ) { return true ; } } return false ; }
Checks control structures (for, foreach, if, switch, while) for correct docblock usage.

@param Tokens $tokens
@param Token  $docsToken    docs Token
@param int    $controlIndex index of control structure Token

@return bool
Checks control structures ( for foreach if switch while ) for correct docblock usage .