Hi zusammen,
habe ein gaaaaanz dooooofes Problem mit PHP. Folgendes (stark vereinfachtes Beispiel)
So, jetzt kommt der Gag! Wenn ich das Objekt erstelle wird ein Objekt erstellt, welches mir meine Verbindung zur Datenbank zur Verfügung stellt.
Wie man im Moment sehen kann, wird bein erstellen der Klasse, gleich nach dem erstellen des Objektes für die Datenbankverbindung, geprüft ob die Verbindung zur DB auch steht. Bekomme jedoch nur folgende Fehlermeldung: "Fatal error: Call to a member function on a non-object"
Was das bedeutet ist mir schon klar.
Spassenshalber habe ich mir das Pbjekt mal ausgeben lassen. Siehe Funktion print. Rufe ich die Funktion direkt hier auf...
... dann gibt es zwar die Variable $this->db, aber die ist leer. Das Objekt ist nicht vorhanden! So, passe ich die Klasse mal wie folgt an...
... dann hat $this->db das Objekt was ich brauche.
Daraus schliesse ich folgendes Resultat. Habe ich in einer Klasse ein Objekt, wie in dem Beispiel, kann ich nur ausserhalb der KLasse, also vom Objekt darauf zugreifen, aber nicht intern aus der KLasse heraus?
Sagt mal habe ich da ein Verständnisproblem? Kann man das Problem irgendwie umgehen? Mache ich was falsch? Habt ihr mein Problem verstanden?
Schonmal danke im Vorraus für Eure Hilfe. Bin grad verzweifelt, da ich in meiner KLasse viel Intern abarbeite und nicht alles von draussen, von der Variable (mein Objekt) steuern möchte.
Gruß
habe ein gaaaaanz dooooofes Problem mit PHP. Folgendes (stark vereinfachtes Beispiel)
PHP-Code:
class app {
var db = null;
var is_active = false;
function app {
$this->db = new db_connection;
$this->is_active = $this->connected();
}
function connected () {
return $this->db->active();
}
function print() {
print_r($this);
}
}
Wie man im Moment sehen kann, wird bein erstellen der Klasse, gleich nach dem erstellen des Objektes für die Datenbankverbindung, geprüft ob die Verbindung zur DB auch steht. Bekomme jedoch nur folgende Fehlermeldung: "Fatal error: Call to a member function on a non-object"
Was das bedeutet ist mir schon klar.
Spassenshalber habe ich mir das Pbjekt mal ausgeben lassen. Siehe Funktion print. Rufe ich die Funktion direkt hier auf...
PHP-Code:
class app {
var db = null;
var is_active = false;
function app {
$this->db = new db_connection;
$this->print();
//$this->is_active = $this->connected();
}
function connected () {
return $this->db->active();
}
function print() {
print_r($this);
}
}
PHP-Code:
class app {
var db = null;
var is_active = false;
function app {
$this->db = new db_connection;
//$this->is_active = $this->connected();
}
function connected () {
return $this->db->active();
}
function print() {
print_r($this);
}
}
$objekt = new app;
$objekt->print();
Daraus schliesse ich folgendes Resultat. Habe ich in einer Klasse ein Objekt, wie in dem Beispiel, kann ich nur ausserhalb der KLasse, also vom Objekt darauf zugreifen, aber nicht intern aus der KLasse heraus?
Sagt mal habe ich da ein Verständnisproblem? Kann man das Problem irgendwie umgehen? Mache ich was falsch? Habt ihr mein Problem verstanden?
Schonmal danke im Vorraus für Eure Hilfe. Bin grad verzweifelt, da ich in meiner KLasse viel Intern abarbeite und nicht alles von draussen, von der Variable (mein Objekt) steuern möchte.
Gruß
Kommentar