function StatementPrefetch::fetchObject

Same name in other branches
  1. 9 core/lib/Drupal/Core/Database/StatementPrefetch.php \Drupal\Core\Database\StatementPrefetch::fetchObject()
  2. 8.9.x core/lib/Drupal/Core/Database/StatementPrefetch.php \Drupal\Core\Database\StatementPrefetch::fetchObject()

Overrides StatementInterface::fetchObject

File

core/lib/Drupal/Core/Database/StatementPrefetch.php, line 473

Class

StatementPrefetch
An implementation of StatementInterface that pre-fetches all data.

Namespace

Drupal\Core\Database

Code

public function fetchObject(?string $class_name = NULL, array $constructor_arguments = []) {
    if (isset($this->currentRow)) {
        if (!isset($class_name)) {
            // Directly cast to an object to avoid a function call.
            $result = (object) $this->currentRow;
        }
        else {
            $this->fetchStyle = \PDO::FETCH_CLASS;
            $this->fetchOptions = [
                'class' => $class_name,
                'constructor_args' => $constructor_arguments,
            ];
            // Grab the row in the format specified above.
            $result = $this->current();
            // Reset the fetch parameters to the value stored using setFetchMode().
            $this->fetchStyle = $this->defaultFetchStyle;
            $this->fetchOptions = $this->defaultFetchOptions;
        }
        $this->next();
        return $result;
    }
    else {
        return FALSE;
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.