Documentation

NoReservedKeywordParameterNamesSniff
in package
implements Sniff

FinalYes

Verifies that parameters in function declarations do not use PHP reserved keywords as this can lead to confusing code when using PHP 8.0+ named parameters in function calls.

Note: while parameters (variables) are case-sensitive in PHP, keywords are not, so this sniff checks for the keywords used in parameter names in a case-insensitive manner to make this sniff independent of code style rules regarding the case for parameter names.

Tags
link
https://www.php.net/manual/en/reserved.keywords.php
since
1.0.0

Table of Contents

Interfaces

Sniff

Properties

$reservedNames  : array<string, string>
A list of PHP reserved keywords.

Methods

process()  : void
Processes this test, when one of its tokens is encountered.
register()  : array<string|int, int|string>
Returns an array of tokens this test wants to listen for.

Properties

$reservedNames

A list of PHP reserved keywords.

private array<string, string> $reservedNames = [ 'abstract' => 'abstract', 'and' => 'and', 'array' => 'array', 'as' => 'as', 'break' => 'break', 'callable' => 'callable', 'case' => 'case', 'catch' => 'catch', 'class' => 'class', 'clone' => 'clone', 'const' => 'const', 'continue' => 'continue', 'declare' => 'declare', 'default' => 'default', 'die' => 'die', 'do' => 'do', 'echo' => 'echo', 'else' => 'else', 'elseif' => 'elseif', 'empty' => 'empty', 'enddeclare' => 'enddeclare', 'endfor' => 'endfor', 'endforeach' => 'endforeach', 'endif' => 'endif', 'endswitch' => 'endswitch', 'endwhile' => 'endwhile', 'enum' => 'enum', 'eval' => 'eval', 'exit' => 'exit', 'extends' => 'extends', 'final' => 'final', 'finally' => 'finally', 'fn' => 'fn', 'for' => 'for', 'foreach' => 'foreach', 'function' => 'function', 'global' => 'global', 'goto' => 'goto', 'if' => 'if', 'implements' => 'implements', 'include' => 'include', 'include_once' => 'include_once', 'instanceof' => 'instanceof', 'insteadof' => 'insteadof', 'interface' => 'interface', 'isset' => 'isset', 'list' => 'list', 'match' => 'match', 'namespace' => 'namespace', 'new' => 'new', 'or' => 'or', 'print' => 'print', 'private' => 'private', 'protected' => 'protected', 'public' => 'public', 'readonly' => 'readonly', 'require' => 'require', 'require_once' => 'require_once', 'return' => 'return', 'static' => 'static', 'switch' => 'switch', 'throw' => 'throw', 'trait' => 'trait', 'try' => 'try', 'unset' => 'unset', 'use' => 'use', 'var' => 'var', 'while' => 'while', 'xor' => 'xor', 'yield' => 'yield', '__class__' => '__CLASS__', '__dir__' => '__DIR__', '__file__' => '__FILE__', '__function__' => '__FUNCTION__', '__line__' => '__LINE__', '__method__' => '__METHOD__', '__namespace__' => '__NAMESPACE__', '__trait__' => '__TRAIT__', 'int' => 'int', 'float' => 'float', 'bool' => 'bool', 'string' => 'string', 'true' => 'true', 'false' => 'false', 'null' => 'null', 'void' => 'void', 'iterable' => 'iterable', 'object' => 'object', 'resource' => 'resource', 'mixed' => 'mixed', 'numeric' => 'numeric', 'never' => 'never', /* * Not reserved keywords, but equally confusing when used in the context of function calls * with named parameters. */ 'parent' => 'parent', 'self' => 'self', ]

Key is the lowercased keyword, value the "proper" cased keyword.

Tags
since
1.0.0

Methods

process()

Processes this test, when one of its tokens is encountered.

public process(File $phpcsFile, int $stackPtr) : void
Parameters
$phpcsFile : File

The file being scanned.

$stackPtr : int

The position of the current token in the stack passed in $tokens.

Tags
since
1.0.0

register()

Returns an array of tokens this test wants to listen for.

public register() : array<string|int, int|string>
Tags
since
1.0.0
Return values
array<string|int, int|string>

        
On this page

Search results