ReflectionParameter::isArray

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

ReflectionParameter::isArrayПроверяет, ожидает ли аргумент массив в качестве значения

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

В приведённом ниже примере показан альтернативный способ получения этой информации.

Описание

public ReflectionParameter::isArray(): bool

Проверяет, ожидает ли аргумент массив в качестве значения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если в качестве значения ожидается массив (array), false в противном случае.

Примеры

Пример #1 Альтернатива в PHP 8.0.0

Начиная с PHP 8.0.0, следующий код сообщит, поддерживает ли тип вызываемые объекты, в том числе как часть объединения.

<?php
function declaresArray(ReflectionParameter $reflectionParameter): bool
{
$reflectionType = $reflectionParameter->getType();

if (!
$reflectionType) return false;

$types = $reflectionType instanceof ReflectionUnionType
? $reflectionType->getTypes()
: [
$reflectionType];

return
in_array('array', array_map(fn(ReflectionNamedType $t) => $t->getName(), $types));
}
?>

Смотрите также

add a note add a note

User Contributed Notes 1 note

up
1
denis at example dot com
4 years ago
Hi, this is simple example of how to use it.

class Test
{
    public function testArray(array $a)
    {
        // do something...
       
        return $a;
    }
   
    public function testString(string $a)
    {
        // do something...
       
        return $a;
    }
}

$reflection = new ReflectionClass('Test');

foreach($reflection->getMethods() as $methods){
    foreach($methods->getParameters() as $param){
        var_dump($param->isArray());
    }
}

//bool(true)
//bool(false)
To Top