logo

Paleta - Deixe colorido🎨

Palette — Construtor visual de páginas. Não precisa ser designer.

Demonstração ao vivo Baixar Palette

Scroll
08/05/2020, by maria

Consultas podem ser buscadas em objetos baseados em classes personalizadas. Por exemplo, com uma classe chamada ExampleClass a consulta seguinte retornará objetos desse tipo (código mantido):

$result = $connection->query("SELECT id, title FROM {example_table}", [], [
  'fetch' => 'ExampleClass',
]);

Se a classe tiver método __construct() os objetos serão criados, as propriedades adicionadas e então o construtor será executado. Por exemplo com esta classe e esta consulta:

class ExampleClass {
  function __construct() {
    // Do something
  }
}

$result = $connection->query("SELECT id, title FROM {example_table}", [], [
  'fetch' => 'ExampleClass',
]);

Объект будет создан, свойства id и title будут добавлены к объекту, а затем будет выполнена __construct(). Порядок этих событий связан с ошибкой в PHP для версий менее 5.2.

Если на объекте существует метод __construct(), который необходимо выполнить до добавления свойств к объекту, в следующем примере показано, как это сделать.

$result = $connection->query("SELECT id, title FROM {example_table}");
foreach ($result->fetchAll(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'ExampleClass') as $record) {
  // Do something
}

Os argumentos passados ao fetchAll podem ser usados da mesma forma: PDO::FETCH_CLASS diz ao fetchAll pegar o result set retornado e adicionar os valores como propriedades ao objeto do tipo ExampleClass (segundo argumento); PDO::FETCH_PROPS_LATE diz para adicionar o result set como propriedades após chamar __construct().