Hallo, ich bin dabei mir eine treiberbasierte Datenbankklasse zu programmieren, die von einer weiteren Klasse ErrorHandler abhängig ist. So hier einmal die ErrorHandlerklasse vereinfacht mit dem Ausführungscript zusammen
Dazu kommt die databaseclass, hier nur vereinfacht, damit ihr ungefähr wisst, was ich mache.
Und hier MySQLi:
Wenn ich das Script aufrufe, bekomme ich beim Ausführen den Fehler, dass $this->errorHandler keine Objekt ist. Eigentlich hätte ich gedacht, dass diese Variable von der Databaseklasse auf MySQLi vererbt wird, scheinbar ist es nicht so. Ich würde mich freuen, wenn mir jemand erklären könnte, wie ich $this->errorHandler aus der Databaseklasse auf MySQLi vererben kann, ohne dass ich $this->errorHandler auch als Variable in die MySQLi-Klasse übergeben muss.
Ich hoffe, dass ich mich ausreichend verständlich ausgedrückt habe, sodass ihr mir helfen könnt.
PHP:
<?php
class errorHandler {
function spray($e){
echo $e;
}
}
$errorHandler = new errorHandler;
include_once('database.php');
$db=new database($errorHandler);
?>
PHP:
<?php
class database{
function __construct($errorHandler){
$this->errorHandler = $errorHandler;
include_once('mysqli.php');
$this->driver=new MySQLi;
}
}
?>
PHP:
<?php
class MySQLi extends database{
function __construct()
{
//Hier funktioniert die Ausgabe nicht, ich bekomme einen Fehler, dass $this->errorHandler kein Objekt ist. Kann mir bitte jemand erklären, wie ich es schaffe, dass ich das errorHandler-Objekt aus der Parentklasse Database auf MySQLi vererben kann, ohne dass ich wie bei der Databaseklasse das Objekt per Variable in die Klasse integrieren muss.
$this->errorHandler->spray('Test');
}
}
?>
Ich hoffe, dass ich mich ausreichend verständlich ausgedrückt habe, sodass ihr mir helfen könnt.