*/ public function register() { return [\T_CONST]; } /** * Processes this test, when one of its tokens is encountered. * * @since 7.0.7 * * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token * in the stack passed in $tokens. * * @return void */ public function process(File $phpcsFile, $stackPtr) { if (ScannedCode::shouldRunOnOrBelow('7.0') === false) { return; } $tokens = $phpcsFile->getTokens(); $skip = Tokens::$emptyTokens; $skip[] = \T_FINAL; $prevToken = $phpcsFile->findPrevious($skip, ($stackPtr - 1), null, true, null, true); // Is the previous token a visibility indicator ? if ($prevToken === false || isset(Tokens::$scopeModifiers[$tokens[$prevToken]['code']]) === false) { return; } // Is this a class constant ? if (Scopes::isOOConstant($phpcsFile, $stackPtr) === false) { // This may be a constant declaration in the global namespace with visibility, // but that would throw a parse error, i.e. not our concern. return; } $phpcsFile->addError( 'Visibility indicators for OO constants are not supported in PHP 7.0 or earlier. Found "%s const"', $prevToken, 'Found', [$tokens[$prevToken]['content']] ); } }