abstract class db_table {
static function get_all_rows() {
...
while(...) {
$rows[] = new self();
...
}
return $rows;
}
}
class user extends db_table {
}
$rows = user::get_all_rows();
I want to create instances of a class from a static method defined in the abstract parent class but PHP tells me “Fatal error: Cannot instantiate abstract class …” How should I implement it correctly?
Edit: Of course I want to create instances of the class “user” in this case, not of the abstract class. So I’ve to tell it to create an instance of the called sub-class.
See this page in the manual:
There is only an easy way around this using PHP >= 5.3 and late static bindings. In PHP 5.3 this should work:
http://php.net/manual/en/function.get-called-class.php