Supported Versions: PHP 4, PHP 5, PHP 7, PHP 8
Finds whether a variable is an array
is_array(mixed $value): bool
            }

        }



        if (
$hasDebugInfo && \is_array($debugInfo)) {

            foreach (
$debugInfo as $k => $v) {

                if (!isset(
$k[0]) || "\0" !== $k[0]) {

                    if (
\array_key_exists(self::PREFIX_DYNAMIC.$k$a)) {
                    $r = new \ReflectionFunction($callable);

                } elseif (
\is_object($callable)) {

                    
$r = [$callable'__invoke'];

                } elseif (
\is_array($callable)) {

                    
$r $callable;

                } elseif (
false !== $i strpos($callable'::')) {

                    
$r = [substr($callable0$i), substr($callable$i)];
                $r = new \ReflectionClass($identifier);

            }



            if (
\is_array($r)) {

                try {

                    
$r = new \ReflectionMethod($r[0], $r[1]);

                } catch (
\ReflectionException $e) {
            return $callable;

        }



        if (!
\is_array($callable)) {

            
$callable = new static($callable$callable);

        } elseif (
\is_string($callable[0])) {

            
$callable[0] = new static($callable[0], $callable);
    private static function getRedisOptions($redis, array $options = []): EnumStub

    
{

        
$serializer $redis->getOption(\Redis::OPT_SERIALIZER);

        if (
\is_array($serializer)) {

            foreach (
$serializer as &$v) {

                if (isset(
self::SERIALIZERS[$v])) {

                    
$v = new ConstStub(self::SERIALIZERS[$v], $v);
        }



        
$compression \defined('Redis::OPT_COMPRESSION') ? $redis->getOption(\Redis::OPT_COMPRESSION) : 0;

        if (
\is_array($compression)) {

            foreach (
$compression as &$v) {

                if (isset(
self::COMPRESSION_MODES[$v])) {

                    
$v = new ConstStub(self::COMPRESSION_MODES[$v], $v);
        }



        
$retry \defined('Redis::OPT_SCAN') ? $redis->getOption(\Redis::OPT_SCAN) : 0;

        if (
\is_array($retry)) {

            foreach (
$retry as &$v) {

                
$v = new ConstStub($v 'RETRY' 'NORETRY'$v);

            }
                    $signature .= substr(strrchr('\\'.$param->getDefaultValueConstantName(), '\\'), 1);

                } elseif (
null === $v) {

                    
$signature .= 'null';

                } elseif (
\is_array($v)) {

                    
$signature .= $v '[…'.\count($v).']' '[]';

                } elseif (
\is_string($v)) {

                    
$signature .= 10 \strlen($v) && !str_contains($v'\\') ? "'{$v}'" "'…".\strlen($v)."'";
    #[\ReturnTypeWillChange]

    public function 
getIterator()

    {

        if (!
\is_array($value $this->getValue())) {

            throw new 
\LogicException(sprintf('"%s" object holds non-iterable type "%s".'self::class, get_debug_type($value)));

        }
    {

        
$value $this->getValue();



        if (!
\is_array($value)) {

            return (string) 
$value;

        }
    private function getStub($item)

    {

        if (!
$item || !\is_array($item)) {

            return 
$item;

        }
                        $a null;

                        break;



                    case 
\is_array($v):

                        if (!
$v) {

                            continue 
2;

                        }
                continue;

            }



            if (!
\is_array($payload) || \count($payload) < || !$payload[0] instanceof Data || !\is_array($payload[1])) {

                if (
$this->logger) {

                    
$this->logger->warning('Invalid payload from {clientId} client. Expected an array of two elements (Data $data, array $context)', ['clientId' => $clientId]);

                }