2009-10-29 5 views
7

Hier ist der Teil, wenn Fehler. 6

Fatal error: Using $this when not in object context in /pb_events.php on line 6

Linie ist: $jpp = $this->vars->data["jpp"];

function DoEvents($this) { 

    global $_CONF, $_PAGE, $_TSM , $base; 

    $jpp = $this->vars->data["jpp"]; 

    $cache["departments"] = $this->db->QFetchRowArray("SELECT * FROM {$this->tables[job_departments]}"); 
    $cache["locations"] = $this->db->QFetchRowArray("SELECT * FROM {$this->tables[job_location]}"); 
    $cache["names"] = $this->db->QFetchRowArray("SELECT * FROM {$this->tables[job_names]}"); 
    $cache["categories"] = $this->db->QFetchRowArray("SELECT * FROM {$this->tables[job_categories]}"); 

Vielen Dank! schätzen!

Antwort

13

dies nur $ macht Sinn in Methoden, nicht in Funktionen

dies ok ist

class Foo { 
    function bar() { 
      $this->... 

dies nicht

function some() { 
    $this-> 

// edit: habe nicht bemerkt, er geht " $ this "als Parameter

Beratung: einfach ersetzen" $ this "mit" $ somethingElse "

+0

danke für die antwort! Dies ist ein OpenSource Software Code der auf PHP4 gut funktioniert. Jetzt versuche ich PHP5 und habe Fehler:/Ich bin nicht sehr gut in PHP:/versuchen, das Problem nach Ihrem Rat zu sortieren ... –

+0

so wie kann ich das bearbeiten? :/wenn ich eine Klasse an der Spitze, die anderen Seiten arbeiten nicht ... große Sauerei –

+0

wowowowow Mann !! ICH LIEBE [email protected]@@@!!!! LEBENSRETTER !!!! VIELEN DANK ALTER!! :)) woaaaa so glücklich !! –

6

Sie können $this nicht an eine prozedurale Funktion übergeben. $this ist eine reservierte Variable.

+0

hey, danke! Was ist dein Lösungsvorschlag? Kannst du ein bisschen klarer sein? Ich bin nicht sehr gut bei PHP:/ –

+3

Ändern Sie einfach den Namen der Variablen übergeben. überprüfe meine Antwort. –

+0

Ein großer Gotcha! –

0

Sie müssen das Objekt zuerst machen.

$object=new Myobject; 
    DoEvents($object); 
4

Laut meiner Kommentare. Sie möchten $this als übergebene Variable verwenden und php erlaubt es nicht außerhalb der Klassenmethoden.

function DoEvents($obj) { 

    global $_CONF, $_PAGE, $_TSM , $base; 

    $jpp = $obj->vars->data["jpp"]; 

    $cache["departments"] = $obj->db->QFetchRowArray("SELECT * FROM {$obj->tables[job_departments]}"); 
    $cache["locations"] = $obj->db->QFetchRowArray("SELECT * FROM {$obj->tables[job_location]}"); 
    $cache["names"] = $obj->db->QFetchRowArray("SELECT * FROM {$obj->tables[job_names]}"); 
    $cache["categories"] = $obj->db->QFetchRowArray("SELECT * FROM {$obj->tables[job_categories]}"); 
+0

ja! Das ist das Problem! wie dumm ich bin! direkt vor deinem Kommentar sortiert ... du auch Lebensretter !! Danke vielmals!!! Super, Leute! –

Verwandte Themen