$this-> innerhalb der Klasse geht nicht...

g3radiochris

Mitglied
Hallo,

hab kleines Problem und auch schon überall gesucht.
Folgende Fehlermeldung gibt es:
Code:
Fatal error: Using $this when not in object context in C:\xampplite\htdocs\web\lib\class\webService.class.php on line 15

PHP:
class webService{

	public function getWebData($id){
		$m1 = mysql_query("SELECT id,adress,de FROM web WHERE id='".mainSecurity::selectEscape($id)."'");
		$m2 =  mysql_fetch_object($m1);
		return $m2;
	}
	
	public function getWebStadtStandort($id){
		$value = $this->getWebData($id);
		return '<div class="location">'.$value-> adress.' - '.$value-> de.'</div> ';
	}
	
	public function getIdWeb($id){
		
		return $this->getWebStadtStandort($id);
	}

}

Mir ist das ganze nicht wirklich klar.
Ich nutze PHP 5, irgendwie soll es da mal auch Probleme wegen dem $this gegeben haben.
Hoffentlich weiß jemand weiter.

Danke und bis bald.
g3radiochris
 
Zuletzt bearbeitet:
Kann es sein, dass du in der mainSecurity::selectEscape() mit $this arbeitest? Das geht nämlich nicht, da es sich offensichtlich um eine statische Funktion handelt.
 
Kann es sein, dass du in der mainSecurity::selectEscape() mit $this arbeitest? Das geht nämlich nicht, da es sich offensichtlich um eine statische Funktion handelt.

Ne, s. h.:

PHP:
class mainSecurity {

	public function insertControll($value){
		$value = htmlentities($value, ENT_QUOTES);
		return $value;
	}
	
	public function selectEscape($value){
		$value = mysql_escape_string($value);
		return $value;
	}

}

Jemand anderes ne Idee?

Danke und bis bald.
g3radiochris
 
Wie wird webService::getIdWeb() aufgerufen?

PHP:
echo toilettService::getIdToilett($_GET["id"]);
Geht das so nicht?
Muss da erst das Objekt erstellen?
Teste es gleich mal...

Edit:
Es funktioniert jetzt, leider habe ich noch nicht denn Grund gefunden, also warum ich erst das Objekt erstellen muss.
Link zur PHP manuell würde mich reichen, finde aber nichts, bis jetzt:-)

Danke und bis bald.
g3radiochris
 
Zuletzt bearbeitet:
Ganz einfach:
Wenn du "KlassenName::Funktion()" benutzt wird die Klasse nicht instanziiert, das heißt es gibt gar kein Objekt auf das sich $this beziehen könnte.
Das Konzept nennt sich "statische Funktion".

Nur wenn du ein Objekt aus der Klasse erstellt hast und die Funktion mit "Objekt->Funktion()" aufrufst ist in der Funktion auch $this verfügbar.

Also probier mal folgendes:
Code:
$Service = new toilettService();
print $toilett$Service->getIdToilett($_GET["id"]);

Hat dir das weitergeholfen?
 
Zurück