function YodaHelper::getDynamismForTokens
*
Parameters
array<int, array<string, array<int, int|string>|int|string>> $tokens: * @param array<int, array<string, array<int, int|string>|int|string>> $sideTokens
2 calls to YodaHelper::getDynamismForTokens()
- DisallowYodaComparisonSniff::process in vendor/
slevomat/ coding-standard/ SlevomatCodingStandard/ Sniffs/ ControlStructures/ DisallowYodaComparisonSniff.php - * @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint *
- RequireYodaComparisonSniff::process in vendor/
slevomat/ coding-standard/ SlevomatCodingStandard/ Sniffs/ ControlStructures/ RequireYodaComparisonSniff.php - * @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint *
File
-
vendor/
slevomat/ coding-standard/ SlevomatCodingStandard/ Helpers/ YodaHelper.php, line 185
Class
- YodaHelper
- @internal
Namespace
SlevomatCodingStandard\HelpersCode
public static function getDynamismForTokens(array $tokens, array $sideTokens) : ?int {
$sideTokens = array_values(array_filter($sideTokens, static function (array $token) : bool {
return !in_array($token['code'], [
T_WHITESPACE,
T_COMMENT,
T_DOC_COMMENT,
T_NS_SEPARATOR,
T_PLUS,
T_MINUS,
T_INT_CAST,
T_DOUBLE_CAST,
T_STRING_CAST,
T_ARRAY_CAST,
T_OBJECT_CAST,
T_BOOL_CAST,
T_UNSET_CAST,
], true);
}));
$sideTokensCount = count($sideTokens);
$dynamism = self::getTokenDynamism();
if ($sideTokensCount > 0) {
if ($sideTokens[0]['code'] === T_VARIABLE) {
// Expression starts with a variable - wins over everything else
return self::DYNAMISM_VARIABLE;
}
if ($sideTokens[$sideTokensCount - 1]['code'] === T_CLOSE_PARENTHESIS) {
if (array_key_exists('parenthesis_owner', $sideTokens[$sideTokensCount - 1])) {
/** @var int $parenthesisOwner */
$parenthesisOwner = $sideTokens[$sideTokensCount - 1]['parenthesis_owner'];
if ($tokens[$parenthesisOwner]['code'] === T_ARRAY) {
// Array
return $dynamism[T_ARRAY];
}
}
// Function or method call
return self::DYNAMISM_FUNCTION_CALL;
}
if ($sideTokensCount === 1 && $sideTokens[0]['code'] === T_STRING) {
// Constant
return self::DYNAMISM_CONSTANT;
}
}
if ($sideTokensCount > 2 && $sideTokens[$sideTokensCount - 2]['code'] === T_DOUBLE_COLON) {
if ($sideTokens[$sideTokensCount - 1]['code'] === T_VARIABLE) {
// Static property access
return self::DYNAMISM_VARIABLE;
}
if ($sideTokens[$sideTokensCount - 1]['code'] === T_STRING) {
// Class constant
return self::DYNAMISM_CONSTANT;
}
}
if (array_key_exists(0, $sideTokens)) {
/** @var int $sideTokenCode */
$sideTokenCode = $sideTokens[0]['code'];
if (array_key_exists($sideTokenCode, $dynamism)) {
return $dynamism[$sideTokenCode];
}
}
return null;
}