public StatementPrefetch::current()
Return the current row formatted according to the current fetch style.
This is the core method of this class. It grabs the value at the current array position in $this->data and format it according to $this->fetchStyle and $this->fetchMode.
Return value
mixed The current row formatted as requested.
File
- core/lib/Drupal/Core/Database/StatementPrefetch.php, line 268
Class
- StatementPrefetch
- An implementation of StatementInterface that prefetches all data.
Namespace
Drupal\Core\Database
Code
public function current() { if (isset($this->currentRow)) { switch ($this->fetchStyle) { case \PDO::FETCH_ASSOC: return $this->currentRow; case \PDO::FETCH_BOTH: // \PDO::FETCH_BOTH returns an array indexed by both the column name // and the column number. return $this->currentRow + array_values($this->currentRow); case \PDO::FETCH_NUM: return array_values($this->currentRow); case \PDO::FETCH_LAZY: // We do not do lazy as everything is fetched already. Fallback to // \PDO::FETCH_OBJ. case \PDO::FETCH_OBJ: return (object) $this->currentRow; case \PDO::FETCH_CLASS | \PDO::FETCH_CLASSTYPE: $class_name = array_unshift($this->currentRow); // Deliberate no break. case \PDO::FETCH_CLASS: if (!isset($class_name)) { $class_name = $this->fetchOptions['class']; } if (count($this->fetchOptions['constructor_args'])) { $reflector = new \ReflectionClass($class_name); $result = $reflector->newInstanceArgs($this->fetchOptions['constructor_args']); } else { $result = new $class_name(); } foreach ($this->currentRow as $k => $v) { $result->$k = $v; } return $result; case \PDO::FETCH_INTO: foreach ($this->currentRow as $k => $v) { $this->fetchOptions['object']->$k = $v; } return $this->fetchOptions['object']; case \PDO::FETCH_COLUMN: if (isset($this->columnNames[$this->fetchOptions['column']])) { return $this->currentRow[$this->columnNames[$this->fetchOptions['column']]]; } else { return; } } } }
Please login to continue.