<?php abstract class Database { abstract public function connect( ); abstract public function query( ); abstract public function fetch( ); abstract public function close( ); } ?>
<?php protected $dbh; protected $query; public function connect($server, $username, $password) { } public function query($sql) { } public function fetch( ) { } public function close( ) { } } ?>
kiedy zainkluduje obie klasy do skryptu otzymuje komunikat:
Fatal error: Declaration of MySQL::connect() must be compatible with that of Database::connect() in 2.php on line 40
kiedy zmienia klase abstrakcyja na:
<?php abstract class Database { abstract public function connect( $server, $username, $password); abstract public function query( $sql); abstract public function fetch( ); abstract public function close( ); } ?>
bledu nie ma, czy to znaczy ze atrybuty metody abstrakcyjnej musza sie zgadzac z atrybutami metody dziedziczacej?