Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Data.php

function Data::getValue

Returns a native representation of the original value.

Parameters

array|bool $recursive Whether values should be resolved recursively or not:

Return value

string|int|float|bool|array|Data[]|null

3 calls to Data::getValue()
Data::count in vendor/symfony/var-dumper/Cloner/Data.php
Data::getIterator in vendor/symfony/var-dumper/Cloner/Data.php
Data::__toString in vendor/symfony/var-dumper/Cloner/Data.php

File

vendor/symfony/var-dumper/Cloner/Data.php, line 71

Class

Data
@author Nicolas Grekas <p@tchwork.com>

Namespace

Symfony\Component\VarDumper\Cloner

Code

public function getValue(array|bool $recursive = false) : string|int|float|bool|array|null {
    $item = $this->data[$this->position][$this->key];
    if ($item instanceof Stub && Stub::TYPE_REF === $item->type && !$item->position) {
        $item = $item->value;
    }
    if (!($item = $this->getStub($item)) instanceof Stub) {
        return $item;
    }
    if (Stub::TYPE_STRING === $item->type) {
        return $item->value;
    }
    $children = $item->position ? $this->data[$item->position] : [];
    foreach ($children as $k => $v) {
        if ($recursive && !($v = $this->getStub($v)) instanceof Stub) {
            continue;
        }
        $children[$k] = clone $this;
        $children[$k]->key = $k;
        $children[$k]->position = $item->position;
        if ($recursive) {
            if (Stub::TYPE_REF === $v->type && ($v = $this->getStub($v->value)) instanceof Stub) {
                $recursive = (array) $recursive;
                if (isset($recursive[$v->position])) {
                    continue;
                }
                $recursive[$v->position] = true;
            }
            $children[$k] = $children[$k]->getValue($recursive);
        }
    }
    return $children;
}
RSS feed
Powered by Drupal