function VariableAnalysisSniff::processVariableAsStaticOutsideClass
*
Parameters
File $phpcsFile: * @param int $stackPtr * @param string $varName * * @return bool
1 call to VariableAnalysisSniff::processVariableAsStaticOutsideClass()
- VariableAnalysisSniff::processVariable in vendor/
sirbrillig/ phpcs-variable-analysis/ VariableAnalysis/ Sniffs/ CodeAnalysis/ VariableAnalysisSniff.php - * Process a normal variable in the code. * * Most importantly, this function determines if the variable use is a "read" * (using the variable for something) or a "write" (an assignment) or, * sometimes, both at once. * …
File
-
vendor/
sirbrillig/ phpcs-variable-analysis/ VariableAnalysis/ Sniffs/ CodeAnalysis/ VariableAnalysisSniff.php, line 1059
Class
Namespace
VariableAnalysis\Sniffs\CodeAnalysisCode
protected function processVariableAsStaticOutsideClass(File $phpcsFile, $stackPtr, $varName) {
// Are we refering to self:: outside a class?
$tokens = $phpcsFile->getTokens();
/** @var array{conditions?: (int|string)[], content?: string}|null */
$token = $tokens[$stackPtr];
$doubleColonPtr = $phpcsFile->findPrevious(Tokens::$emptyTokens, $stackPtr - 1, null, true);
if ($doubleColonPtr === false || $tokens[$doubleColonPtr]['code'] !== T_DOUBLE_COLON) {
return false;
}
$classNamePtr = $phpcsFile->findPrevious(Tokens::$emptyTokens, $doubleColonPtr - 1, null, true);
if ($classNamePtr === false) {
return false;
}
$code = $tokens[$classNamePtr]['code'];
$staticReferences = [
T_SELF,
T_STATIC,
];
if (!in_array($code, $staticReferences, true)) {
return false;
}
$errorClass = $code === T_SELF ? 'SelfOutsideClass' : 'StaticOutsideClass';
$staticRefType = $code === T_SELF ? 'self::' : 'static::';
if (!empty($token['conditions']) && !empty($token['content']) && Helpers::areAnyConditionsAClass($token)) {
return false;
}
$phpcsFile->addError("Use of {$staticRefType}%s outside class definition.", $stackPtr, $errorClass, [
"\${$varName}",
]);
return true;
}