Dictionary::has()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Linio\Type;
6
7
class Dictionary implements \JsonSerializable, \Countable
8
{
9
    /**
10
     * @var array
11
     */
12
    protected $data;
13
14
    public function __construct(array $data = [])
15
    {
16
        $this->data = $data;
17
    }
18
19
    public function get(string $key, $default = null)
20
    {
21
        if (!isset($this->data[$key])) {
22
            return $default;
23
        }
24
25
        return $this->data[$key];
26
    }
27
28
    public function set(string $key, $value)
29
    {
30
        $this->data[$key] = $value;
31
    }
32
33
    public function remove(string $key)
34
    {
35
        unset($this->data[$key]);
36
    }
37
38
    public function has(string $key): bool
39
    {
40
        return isset($this->data[$key]);
41
    }
42
43
    public function contains($value): bool
44
    {
45
        return in_array($value, $this->data);
46
    }
47
48
    public function replace(array $data)
49
    {
50
        $this->data = $data;
51
    }
52
53
    public function getKeys(): array
54
    {
55
        return array_keys($this->data);
56
    }
57
58
    public function isEmpty(): bool
59
    {
60
        return empty($this->data);
61
    }
62
63
    public function count(): int
64
    {
65
        return count($this->data);
66
    }
67
68
    public function clear()
69
    {
70
        $this->data = [];
71
    }
72
73
    public function toArray(): array
74
    {
75
        return $this->data;
76
    }
77
78
    public function jsonSerialize(): string
79
    {
80
        return json_encode($this->data);
81
    }
82
83
    public function __toString(): string
84
    {
85
        return $this->jsonSerialize();
86
    }
87
}
88