Completed
Push — develop ( ffb87f...d31c2e )
by Stuart
02:42
created

IsArray::inspect()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
eloc 2
c 1
b 0
f 1
nc 1
nop 1
dl 0
loc 4
rs 10
1
<?php
2
3
/**
4
 * Copyright (c) 2015-present Ganbaro Digital Ltd
5
 * All rights reserved.
6
 *
7
 * Redistribution and use in source and binary forms, with or without
8
 * modification, are permitted provided that the following conditions
9
 * are met:
10
 *
11
 *   * Redistributions of source code must retain the above copyright
12
 *     notice, this list of conditions and the following disclaimer.
13
 *
14
 *   * Redistributions in binary form must reproduce the above copyright
15
 *     notice, this list of conditions and the following disclaimer in
16
 *     the documentation and/or other materials provided with the
17
 *     distribution.
18
 *
19
 *   * Neither the names of the copyright holders nor the names of his
20
 *     contributors may be used to endorse or promote products derived
21
 *     from this software without specific prior written permission.
22
 *
23
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
26
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
27
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
28
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
29
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
33
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34
 * POSSIBILITY OF SUCH DAMAGE.
35
 *
36
 * @category  Libraries
37
 * @package   MissingBits/TypeChecks
38
 * @author    Stuart Herbert <[email protected]>
39
 * @copyright 2015-present Ganbaro Digital Ltd www.ganbarodigital.com
40
 * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
41
 * @link      http://ganbarodigital.github.io/php-the-missing-bits
42
 */
43
44
namespace GanbaroDigital\MissingBits\TypeChecks;
45
46
use GanbaroDigital\MissingBits\Checks\Check;
47
use GanbaroDigital\MissingBits\Checks\ListCheck;
48
use GanbaroDigital\MissingBits\Checks\ListableCheck;
49
50
/**
51
 * do we have something that is an array? It must be something that can be
52
 * used by any of PHP's array_xxx() functions
53
 */
54
class IsArray implements Check, ListCheck
55
{
56
    // saves us having to implement inspectList() ourselves
57
    use ListableCheck;
58
59
    /**
60
     * do we have something that is an array?
61
     *
62
     * by array, we mean something that you can pass to any of PHP's
63
     * array_xxx() functions
64
     *
65
     * @param  mixed $item
0 ignored issues
show
Bug introduced by
There is no parameter named $item. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
66
     *         the item to be checked
67
     * @return boolean
68
     *         TRUE if the item is an array
69
     *         FALSE otherwise
70
     */
71
    public static function check($fieldOrVar)
72
    {
73
        // general cases
74
        if (is_array($fieldOrVar)) {
75
            return true;
76
        }
77
78
        // if we get here, we have run out of ideas
79
        return false;
80
    }
81
82
    /**
83
     * do we have something that is an array?
84
     *
85
     * by array, we mean something that you can pass to any of PHP's
86
     * array_xxx() functions
87
     *
88
     * @param  mixed $fieldOrVar
89
     *         the item to be checked
90
     * @return boolean
91
     *         TRUE if the item is an array
92
     *         FALSE otherwise
93
     */
94
    public function inspect($fieldOrVar)
95
    {
96
        return static::check($fieldOrVar);
97
    }
98
99
    /**
100
     * is every entry in $list an array?
101
     *
102
     * by array, we mean something that you can pass to any of PHP's
103
     * array_xxx() functions
104
     *
105
     * @param  mixed $list
106
     *         the list of items to be checked
107
     * @return boolean
108
     *         TRUE if every item in $list is an array
109
     *         FALSE otherwise
110
     */
111
    public static function checkList($list)
112
    {
113
        $check = new static;
114
        return $check->inspectList($list);
115
    }
116
}
117