Methods |
public
|
__construct(bool $isExplicitMixed = false, ?Type $subtractedType = null)
|
#
|
public
|
getReferencedClasses(): array
|
#
|
public
|
getObjectClassNames(): array
|
#
|
public
|
getObjectClassReflections(): array
|
#
|
public
|
getArrays(): array
|
#
|
public
|
getConstantArrays(): array
|
#
|
public
|
getConstantStrings(): array
|
#
|
public
|
accepts(Type $type, bool $strictTypes): AcceptsResult
This is like accepts() but gives reasons
why the type was not/might not be accepted in some non-intuitive scenarios.
This is like accepts() but gives reasons
why the type was not/might not be accepted in some non-intuitive scenarios.
In PHPStan 2.0 this method will be removed and the return type of accepts()
will change to AcceptsResult.
Implements
|
#
|
public
|
isSuperTypeOfMixed(MixedType $type): TrinaryLogic
|
#
|
public
|
isSuperTypeOf(Type $type): TrinaryLogic
|
#
|
public
|
setOffsetValueType(?Type $offsetType, Type $valueType, bool $unionValues = true): Type
|
#
|
public
|
setExistingOffsetValueType(Type $offsetType, Type $valueType): Type
|
#
|
public
|
unsetOffset(Type $offsetType): Type
|
#
|
public
|
getKeysArray(): Type
|
#
|
public
|
getValuesArray(): Type
|
#
|
public
|
chunkArray(Type $lengthType, TrinaryLogic $preserveKeys): Type
|
#
|
public
|
fillKeysArray(Type $valueType): Type
|
#
|
public
|
flipArray(): Type
|
#
|
public
|
intersectKeyArray(Type $otherArraysType): Type
|
#
|
public
|
popArray(): Type
|
#
|
public
|
reverseArray(TrinaryLogic $preserveKeys): Type
|
#
|
public
|
searchArray(Type $needleType): Type
|
#
|
public
|
shiftArray(): Type
|
#
|
public
|
shuffleArray(): Type
|
#
|
public
|
isCallable(): TrinaryLogic
|
#
|
public
|
getEnumCases(): array
|
#
|
public
|
getCallableParametersAcceptors(ClassMemberAccessAnswerer $scope): array
|
#
|
public
|
equals(Type $type): bool
|
#
|
public
|
isSubTypeOf(Type $otherType): TrinaryLogic
|
#
|
public
|
isAcceptedBy(Type $acceptingType, bool $strictTypes): AcceptsResult
|
#
|
public
|
getTemplateType(string $ancestorClassName, string $templateTypeName): Type
Returns actual template type for a given object.
Returns actual template type for a given object.
Example:
@-template T
class Foo {}
// $fooType is Foo
$t = $fooType->getTemplateType(Foo::class, 'T');
$t->isInteger(); // yes
Returns ErrorType in case of a missing type.
Implements
|
#
|
public
|
isObject(): TrinaryLogic
|
#
|
public
|
isEnum(): TrinaryLogic
|
#
|
public
|
canAccessProperties(): TrinaryLogic
|
#
|
public
|
hasProperty(string $propertyName): TrinaryLogic
|
#
|
public
|
getProperty(string $propertyName, ClassMemberAccessAnswerer $scope): ExtendedPropertyReflection
|
#
|
public
|
getUnresolvedPropertyPrototype(
string $propertyName,
ClassMemberAccessAnswerer $scope,
): UnresolvedPropertyPrototypeReflection
|
#
|
public
|
canCallMethods(): TrinaryLogic
|
#
|
public
|
hasMethod(string $methodName): TrinaryLogic
|
#
|
public
|
getMethod(string $methodName, ClassMemberAccessAnswerer $scope): ExtendedMethodReflection
|
#
|
public
|
getUnresolvedMethodPrototype(string $methodName, ClassMemberAccessAnswerer $scope): UnresolvedMethodPrototypeReflection
|
#
|
public
|
canAccessConstants(): TrinaryLogic
|
#
|
public
|
hasConstant(string $constantName): TrinaryLogic
|
#
|
public
|
getConstant(string $constantName): ClassConstantReflection
|
#
|
public
|
isCloneable(): TrinaryLogic
|
#
|
public
|
describe(VerbosityLevel $level): string
|
#
|
public
|
toBoolean(): BooleanType
|
#
|
public
|
toNumber(): Type
|
#
|
public
|
toAbsoluteNumber(): Type
|
#
|
public
|
toInteger(): Type
|
#
|
public
|
toFloat(): Type
|
#
|
public
|
toString(): Type
|
#
|
public
|
toArray(): Type
|
#
|
public
|
toArrayKey(): Type
|
#
|
public
|
isIterable(): TrinaryLogic
|
#
|
public
|
isIterableAtLeastOnce(): TrinaryLogic
|
#
|
public
|
getArraySize(): Type
|
#
|
public
|
getIterableKeyType(): Type
|
#
|
public
|
getFirstIterableKeyType(): Type
|
#
|
public
|
getLastIterableKeyType(): Type
|
#
|
public
|
getIterableValueType(): Type
|
#
|
public
|
getFirstIterableValueType(): Type
|
#
|
public
|
getLastIterableValueType(): Type
|
#
|
public
|
isOffsetAccessible(): TrinaryLogic
|
#
|
public
|
isOffsetAccessLegal(): TrinaryLogic
|
#
|
public
|
hasOffsetValueType(Type $offsetType): TrinaryLogic
|
#
|
public
|
getOffsetValueType(Type $offsetType): Type
|
#
|
public
|
isExplicitMixed(): bool
|
#
|
public
|
subtract(Type $type): Type
|
#
|
public
|
getTypeWithoutSubtractedType(): Type
|
#
|
public
|
changeSubtractedType(?Type $subtractedType): Type
|
#
|
public
|
getSubtractedType(): ?Type
|
#
|
public
|
traverse(callable $cb): Type
Traverses inner types
Traverses inner types
Returns a new instance with all inner types mapped through $cb. Might
return the same instance if inner types did not change.
Implements
|
#
|
public
|
traverseSimultaneously(Type $right, callable $cb): Type
Traverses inner types while keeping the same context in another type.
Traverses inner types while keeping the same context in another type.
Implements
|
#
|
public
|
isArray(): TrinaryLogic
|
#
|
public
|
isConstantArray(): TrinaryLogic
|
#
|
public
|
isOversizedArray(): TrinaryLogic
|
#
|
public
|
isList(): TrinaryLogic
|
#
|
public
|
isNull(): TrinaryLogic
|
#
|
public
|
isConstantValue(): TrinaryLogic
Is Type of a known constant value? Includes literal strings, integers, floats, true, false, null, and array shapes.
Is Type of a known constant value? Includes literal strings, integers, floats, true, false, null, and array shapes.
Implements
|
#
|
public
|
isConstantScalarValue(): TrinaryLogic
Is Type of a known constant scalar value? Includes literal strings, integers, floats, true, false, and null.
Is Type of a known constant scalar value? Includes literal strings, integers, floats, true, false, and null.
Implements
|
#
|
public
|
getConstantScalarTypes(): array
|
#
|
public
|
getConstantScalarValues(): array
|
#
|
public
|
isTrue(): TrinaryLogic
|
#
|
public
|
isFalse(): TrinaryLogic
|
#
|
public
|
isBoolean(): TrinaryLogic
|
#
|
public
|
isFloat(): TrinaryLogic
|
#
|
public
|
isInteger(): TrinaryLogic
|
#
|
public
|
isString(): TrinaryLogic
|
#
|
public
|
isNumericString(): TrinaryLogic
|
#
|
public
|
isNonEmptyString(): TrinaryLogic
|
#
|
public
|
isNonFalsyString(): TrinaryLogic
|
#
|
public
|
isLiteralString(): TrinaryLogic
|
#
|
public
|
isLowercaseString(): TrinaryLogic
|
#
|
public
|
isClassString(): TrinaryLogic
|
#
|
public
|
getClassStringObjectType(): Type
Returns object type Foo for class-string<Foo> and 'Foo' (if Foo is a valid class).
Returns object type Foo for class-string<Foo> and 'Foo' (if Foo is a valid class).
Implements
|
#
|
public
|
getObjectTypeOrClassStringObjectType(): Type
Returns object type Foo for class-string<Foo>, 'Foo' (if Foo is a valid class),
and object type Foo.
Returns object type Foo for class-string<Foo>, 'Foo' (if Foo is a valid class),
and object type Foo.
Implements
|
#
|
public
|
isVoid(): TrinaryLogic
|
#
|
public
|
isScalar(): TrinaryLogic
|
#
|
public
|
looseCompare(Type $type, PhpVersion $phpVersion): BooleanType
|
#
|
public
|
tryRemove(Type $typeToRemove): ?Type
Return the difference with another type, or null if it cannot be represented.
Return the difference with another type, or null if it cannot be represented.
Implements
|
#
|
public
|
exponentiate(Type $exponent): Type
|
#
|
public
|
getFiniteTypes(): array
Returns a list of finite values.
Returns a list of finite values.
Examples:
- for bool: [true, false]
- for int<0, 3>: [0, 1, 2, 3]
- for enums: list of enum cases
- for scalars: the scalar itself
For infinite types it returns an empty array.
Implements
|
#
|
public
|
toPhpDocNode(): TypeNode
|
#
|