Вход Регистрация
Файл: vendor/doctrine/dbal/src/Cache/ArrayResult.php
Строк: 89
<?php

namespace DoctrineDBALCache;

use 
DoctrineDBALDriverFetchUtils;
use 
DoctrineDBALDriverResult;

use function 
array_values;
use function 
count;
use function 
reset;

/** @internal The class is internal to the caching layer implementation. */
final class ArrayResult implements Result
{
    
/** @var list<array<string, mixed>> */
    
private array $data;

    private 
int $columnCount 0;
    private 
int $num         0;

    
/** @param list<array<string, mixed>> $data */
    
public function __construct(array $data)
    {
        
$this->data $data;
        if (
count($data) === 0) {
            return;
        }

        
$this->columnCount count($data[0]);
    }

    
/**
     * {@inheritDoc}
     */
    
public function fetchNumeric()
    {
        
$row $this->fetch();

        if (
$row === false) {
            return 
false;
        }

        return 
array_values($row);
    }

    
/**
     * {@inheritDoc}
     */
    
public function fetchAssociative()
    {
        return 
$this->fetch();
    }

    
/**
     * {@inheritDoc}
     */
    
public function fetchOne()
    {
        
$row $this->fetch();

        if (
$row === false) {
            return 
false;
        }

        return 
reset($row);
    }

    
/**
     * {@inheritDoc}
     */
    
public function fetchAllNumeric(): array
    {
        return 
FetchUtils::fetchAllNumeric($this);
    }

    
/**
     * {@inheritDoc}
     */
    
public function fetchAllAssociative(): array
    {
        return 
FetchUtils::fetchAllAssociative($this);
    }

    
/**
     * {@inheritDoc}
     */
    
public function fetchFirstColumn(): array
    {
        return 
FetchUtils::fetchFirstColumn($this);
    }

    public function 
rowCount(): int
    
{
        return 
count($this->data);
    }

    public function 
columnCount(): int
    
{
        return 
$this->columnCount;
    }

    public function 
free(): void
    
{
        
$this->data = [];
    }

    
/** @return array<string, mixed>|false */
    
private function fetch()
    {
        if (! isset(
$this->data[$this->num])) {
            return 
false;
        }

        return 
$this->data[$this->num++];
    }
}
Онлайн: 1
Реклама