$fooObj = new FooClass();
foreach($classFromPDO as $name => $value){
if(property_exists($fooObj,$name)){
$fooObj->{$name} = $value;
}
}
<?php
class fruit {
public $name;
public $colour;
}
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_CLASS, "fruit");
var_dump($result);
?>
Вот в этом то и проблема. Я пытаюсь скрыть внутри класса всё взаимодействие с БД. А у вашем варианте это не так.
abstract class modelDB
{
public static function find()
{
$sth = $dbh->prepare("SELECT * FROM `". get_called_class() ."`");
$sth->execute();
return $sth->fetchAll(PDO::FETCH_CLASS, get_called_class());
}
}
class fruit extends modelDB {
public $name;
public $colour;
}
$result = fruit::find();