1# KeySet
2
3- `v::keySet(Key $rule...)`
4
5Validates a keys in a defined structure.
6
7```php
8$dict = ['foo' => 42];
9
10v::keySet(
11    v::key('foo', v::intVal())
12)->validate($dict); // true
13```
14
15Extra keys are not allowed:
16```php
17$dict = ['foo' => 42, 'bar' => 'String'];
18
19v::keySet(
20    v::key('foo', v::intVal())
21)->validate($dict); // false
22```
23
24Missing required keys are not allowed:
25```php
26$dict = ['foo' => 42, 'bar' => 'String'];
27
28v::keySet(
29    v::key('foo', v::intVal()),
30    v::key('bar', v::stringType()),
31    v::key('baz', v::boolType())
32)->validate($dict); // false
33```
34
35Missing non-required keys are allowed:
36```php
37$dict = ['foo' => 42, 'bar' => 'String'];
38
39v::keySet(
40    v::key('foo', v::intVal()),
41    v::key('bar', v::stringType()),
42    v::key('baz', v::boolType(), false)
43)->validate($dict); // true
44```
45
46The keys' order is not considered in the validation.
47
48***
49See also:
50
51  * [Key](Key.md)
52