Strict Mode PHP Notice Frage
Steffen
- php
Hallo Forumleser,
bin gerade dabei ein sauberen PHP Code zu schreiben bekomme aber beim Strict Mode eine Notice, womit ich nichts anfangen kann.
Strict Standards: Non-static method DepartmentSQL::QueryAll() should not be called statically, assuming $this from incompatible context in C:\Users\steffen\workspace\sysld\trunk\class\dao\DepartmentDAO.class.php on line 9
Zeile 9: $sql = DepartmentSQL::QueryAll();
Die Klasse schaut dementsprechend so aus:
class DepartmentSQL{
function QueryAll(){
$sql = "SELECT id, name, costcenter "
. "FROM t_department "
. "ORDER BY name;";
return $sql;
}
}
Kann mir jemand helfen, wie ich diesen "Fehler" behebe?
mfg Steffen
Hallo,
bin gerade dabei ein sauberen PHP Code zu schreiben bekomme aber beim Strict Mode eine Notice, womit ich nichts anfangen kann.
Strict Standards: Non-static method DepartmentSQL::QueryAll() should not be called statically, assuming $this from incompatible context in C:\Users\steffen\workspace\sysld\trunk\class\dao\DepartmentDAO.class.php on line 9
Du kennst den Unterschied zwischen statischen und nicht statischen Methoden? Versuche, die Fehlermeldung zu verstehen.
Gruß
jobo
Hallo jobo,
Du kennst den Unterschied zwischen statischen und nicht statischen Methoden? Versuche, die Fehlermeldung zu verstehen.
Gruß
jobo
oh man einfach nen static vor die function. Oh man da hätte ich auch selbst drauf kommen können.
Vielen Dank :)
Hallo,
bevor ich nochmal ein neues Thema aufmache poste ich nochmal hier. Hoffe das ist in Ordnung.
Ich rufe eine Klasse auf: $Account = new Account();
Diese schaut so aus:
class AccountDTO{
var $id;
var $fk_user;
var $sid;
}
Wenn ich der Variable $Account->test = "dd"; einen Wert zuweise, kommt selbst im static Modus keine Notice oder sonstiges. Wie kann ich garantieren, dass nur Variablen genutzt werden, die fest definiert sind?
mfg Steffen
Hi!
bevor ich nochmal ein neues Thema aufmache poste ich nochmal hier. Hoffe das ist in Ordnung.
Sehr gut. Du kannst auch auf dein Ausgangsposting antworten und über die Vorschau-Funktion den Titel ändern, dann wird es noch etwas übersichtlicher.
Wenn ich der Variable $Account->test = "dd"; einen Wert zuweise, kommt selbst im static Modus keine Notice oder sonstiges. Wie kann ich garantieren, dass nur Variablen genutzt werden, die fest definiert sind?
Verwende kein PHP. Es ist PHPs Philosophie, Variablen bei der erstmaligen Zuweisung anzulegen. Da machen auch Objektvariablen keine Ausnahme. Allerdings kannst du Magie verwenden, um Zugriffe auf nicht vorhandene Objektvariablen abzufangen.
Lo!