2009-10-29 20 views
7

tutaj jest częścią, jeśli ma błąd.

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

Linia 6: $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]}"); 

Thanks a lot! doceniać!

Odpowiedz

13

$ to ma sens tylko w metodach, a nie w funkcji

to jest ok

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

nie jest

function some() { 
    $this-> 

// edit: nie zauważył on przechodzi " $ this "jako parametr

rada: po prostu zamień" $ this "na" $ somethingElse "

+0

dzięki za odpowiedź! jest to kod źródłowy oprogramowania open source, który działał dobrze na PHP4. teraz próbuję na PHP5 i ma błędy:/​​Nie jestem zbyt dobry w php:/próbuję rozwiązać problem zgodnie z twoją radą ... –

+0

, więc jak mogę to zmienić? :/jeśli postawię klasę na górze, inne strony nie działają ... wielki bałagan –

+0

wowowow !! KOCHAM CIĘ@@@@!!!! ŻYCIE SAVER !!!! DZIĘKI WIELKIE!! :)) woaaaa tak szczęśliwy !! –

6

Nie można przekazać $this funkcji proceduralnej. $this jest zmienną zarezerwowaną.

+0

hej, dzięki! więc jaka jest twoja rada dla rozwiązania? czy możesz być trochę bardziej zrozumiały? Im niezbyt dobrze w php:/ –

+3

wystarczy zmienić nazwę przekazanej zmiennej. sprawdź moją odpowiedź. –

+0

Świetne gówno! –

0

Najpierw musisz wykonać obiekt.

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

Zgodnie z moimi komentarzami. Chcesz użyć $this jako przekazanej zmiennej, a php nie zezwala na to poza zewnętrznymi metodami klasy.

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

tak! to jest problem! jak głupio im! posortowane tuż przed twoim komentarzem ... Ty też oszczędzasz życie !! wielkie dzięki!!! super jesteście! –

Powiązane problemy