PHP Тип

Nette\Utils\Type — це клас для роботи з типами даних PHP.

Встановлення:

composer require nette/utils 

Усі приклади передбачають створений псевдонім:

use Nette\Utils\Type; 

fromReflection ($reflection): ?Type

Статичний метод створює об'єкт Type на основі рефлексії. Параметром може бути об'єкт ReflectionMethod або ReflectionFunction (повертає тип значення, що повертається) або ReflectionParameter чи ReflectionProperty. Перекладає self, static та parent на справжню назву класу. Якщо суб'єкт не має типу, повертає null.

class DemoClass {	public self $foo; } $prop = new ReflectionProperty(DemoClass::class, 'foo'); echo Type::fromReflection($prop); // 'DemoClass' 

fromString (string $type): Type

Статичний метод створює об'єкт Type за текстовим записом.

$type = Type::fromString('Foo|Bar'); echo $type; // 'Foo|Bar' 

getNames (): (string|array)[]

Повертає масив підтипів, з яких складається складений тип, як рядки.

$type = Type::fromString('string|null'); // або '?string' $type->getNames(); // ['string', 'null'] $type = Type::fromString('(Foo&Bar)|string'); $type->getNames(); // [['Foo', 'Bar'], 'string'] 

getTypes(): Type[]

Повертає масив підтипів, з яких складається складений тип, як об'єкти Type:

$type = Type::fromString('string|null'); // або '?string' $type->getTypes(); // [Type::fromString('string'), Type::fromString('null')] $type = Type::fromString('(Foo&Bar)|string'); $type->getTypes(); // [Type::fromString('Foo&Bar'), Type::fromString('string')] $type = Type::fromString('Foo&Bar'); $type->getTypes(); // [Type::fromString('Foo'), Type::fromString('Bar')] 

getSingleName(): ?string

Для простих типів повертає назву типу, інакше null.

$type = Type::fromString('string|null'); echo $type; // '?string' echo $type->getSingleName(); // 'string' $type = Type::fromString('?Foo'); echo $type; // '?Foo' echo $type->getSingleName(); // 'Foo' $type = Type::fromString('Foo|Bar'); echo $type; // 'Foo|Bar' echo $type->getSingleName(); // null 

isSimple(): bool

Повертає, чи є тип простим. До простих типів відносяться також прості nullable типи:

$type = Type::fromString('string'); $type->isSimple(); // true $type->isUnion(); // false $type = Type::fromString('?Foo'); // або 'Foo|null' $type->isSimple(); // true $type->isUnion(); // true 

isUnion(): bool

Повертає, чи є тип union типом.

$type = Type::fromString('string|int'); $type->isUnion(); // true 

isIntersection(): bool

Повертає, чи є тип intersection типом.

$type = Type::fromString('Foo&Bar'); $type->isIntersection(); // true 

isBuiltin(): bool

Повертає, чи є тип простим і водночас вбудованим типом PHP.

$type = Type::fromString('string'); $type->isBuiltin(); // true $type = Type::fromString('string|int'); $type->isBuiltin(); // false $type = Type::fromString('Foo'); $type->isBuiltin(); // false 

isClass(): bool

Повертає, чи є тип простим і водночас назвою класу.

$type = Type::fromString('string'); $type->isClass(); // false $type = Type::fromString('Foo|null'); $type->isClass(); // true $type = Type::fromString('Foo|Bar'); $type->isClass(); // false 

isClassKeyword(): bool

Повертає, чи є тип одним з внутрішніх типів self, parent, static.

$type = Type::fromString('self'); $type->isClassKeyword(); // true $type = Type::fromString('Foo'); $type->isClassKeyword(); // false 

allows (string $type): bool

Метод allows() перевіряє сумісність типів. Наприклад, дозволяє дізнатися, чи може значення певного типу бути передане як параметр.

$type = Type::fromString('string|null'); $type->allows('string'); // true $type->allows('null'); // true $type->allows('Foo'); // false $type = Type::fromString('mixed'); $type->allows('null'); // true 
версія: 4.0