• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

voku / Arrayy / 4061922581

pending completion
4061922581

push

github

GitHub
Merge pull request #125 from voku/renovate/actions-cache-3.x

2279 of 2570 relevant lines covered (88.68%)

65.34 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

45.45
/src/Create.php
1
<?php
2

3
declare(strict_types=1);
4

5
namespace {
6

7
    if (\PHP_VERSION_ID < 70300) {
8
        if (!\function_exists('is_countable')) {
9
            /**
10
             * @param mixed $var
11
             *
12
             * @return bool
13
             */
14
            function is_countable($var)
15
            {
16
                return \is_array($var)
×
17
                       ||
18
                       $var instanceof SimpleXMLElement
×
19
                       ||
20
                       $var instanceof Countable
×
21
                       ||
22
                       $var instanceof ResourceBundle;
×
23
            }
24
        }
25

26
        if (!\function_exists('array_key_first')) {
27
            /**
28
             * @param array<mixed> $array
29
             *
30
             * @return int|string|null
31
             */
32
            function array_key_first(array $array)
33
            {
34
                foreach ($array as $key => $value) {
×
35
                    return $key;
×
36
                }
37

38
                return null;
×
39
            }
40
        }
41

42
        if (!\function_exists('array_key_last')) {
43
            /**
44
             * @param array<mixed> $array
45
             *
46
             * @return int|string|null
47
             */
48
            function array_key_last(array $array)
49
            {
50
                if (\count($array) === 0) {
×
51
                    return null;
×
52
                }
53

54
                return \array_keys(
×
55
                    \array_slice($array, -1, 1, true)
×
56
                )[0];
×
57
            }
58
        }
59
    }
60

61
}
62

63
namespace Arrayy {
64

65
    use Arrayy\Collection\Collection;
66
    use Arrayy\TypeCheck\TypeCheckArray;
67
    use Arrayy\TypeCheck\TypeCheckInterface;
68

69
    if (!\function_exists('Arrayy\create')) {
70
        /**
71
         * Creates a Arrayy object.
72
         *
73
         * @param mixed $data
74
         *
75
         * @return Arrayy<int|string,mixed>
76
         */
77
        function create($data): Arrayy
78
        {
79
            return new Arrayy($data);
2✔
80
        }
81
    }
82

83
    if (!\function_exists('Arrayy\collection')) {
84
        /**
85
         * Creates a Collection object.
86
         *
87
         * @param string|TypeCheckArray|TypeCheckInterface[] $type
88
         * @param array<mixed>                               $data
89
         *
90
         * @return Collection
91
         *
92
         * @template T
93
         * @phpstan-param T $type
94
         * @phpstan-return Collection<array-key,T>
95
         */
96
        function collection($type, $data = []): Collection
97
        {
98
            /** @phpstan-var Collection<array-key,T> */
99
            return Collection::construct($type, $data);
2✔
100
        }
101
    }
102

103
    /**
104
     * @param array<mixed> $array
105
     * @param mixed        $fallback <p>This fallback will be used, if the array is empty.</p>
106
     *
107
     * @return mixed|null
108
     *
109
     * @template TLast
110
     * @template TLastFallback
111
     * @phpstan-param TLast[] $array
112
     * @phpstan-param TLastFallback $fallback
113
     * @phpstan-return TLast|TLastFallback
114
     */
115
    function array_last(array $array, $fallback = null)
116
    {
117
        $key_last = \array_key_last($array);
4✔
118
        if ($key_last === null) {
4✔
119
            return $fallback;
1✔
120
        }
121

122
        return $array[$key_last];
3✔
123
    }
124

125
    /**
126
     * @param array<mixed> $array
127
     * @param mixed        $fallback <p>This fallback will be used, if the array is empty.</p>
128
     *
129
     * @return mixed|null
130
     *
131
     * @template TFirst
132
     * @template TFirstFallback
133
     * @phpstan-param TFirst[] $array
134
     * @phpstan-param TFirstFallback $fallback
135
     * @phpstan-return TFirst|TFirstFallback
136
     */
137
    function array_first(array $array, $fallback = null)
138
    {
139
        $key_first = \array_key_first($array);
11✔
140
        if ($key_first === null) {
11✔
141
            return $fallback;
2✔
142
        }
143

144
        return $array[$key_first];
10✔
145
    }
146

147
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc