2009-10-29 4 views
7

вот часть, если есть ошибка.

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

линия 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]}"); 

Спасибо большое! оценить!

ответ

13

$ это имеет смысл только в методах, а не в функциях

это нормально

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

это не

function some() { 
    $this-> 

// редактировать: не заметил, что он проходит " $ this "в качестве параметра

совет: просто замените« $ this »на« $ somethingElse »

+0

благодарит за ответом! это программный код с открытым исходным кодом, который хорошо работает на PHP4. теперь я пытаюсь использовать PHP5 и имеет ошибки:/Я не очень хорошо разбираюсь в php:/пытается разобраться с проблемой в соответствии с вашими советами ... –

+0

, так как я могу это изменить? :/если я ставлю класс сверху, другие страницы не работают ... big mess –

+0

wowowowow man !! Я ЛЮБЛЮ ТЕБЯ@@@@!!!! ЖИЗНЬ СПАСИБО !!!! СПАСИБО МНОГОМУ! :)) woaaaa так счастлив !! –

6

Вы не можете передать $this процедурной функции. $this - зарезервированная переменная.

+0

эй, спасибо! так что вы посоветуете для решения? можете ли вы быть более ясными? Я не очень хорошо разбираюсь в php:/ –

+3

просто измените имя переданной переменной. проверьте мой ответ. –

+0

Отличная игра! –

0

Сначала вы должны сделать объект.

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

Согласно моим комментариям. Вы хотите использовать $this как переданную переменную, а php не допускает ее вне тела методов класса.

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

да! вот вопрос! как глупо им! отсортированный как раз перед вашим комментарием ... вы тоже за жизнь! большое спасибо!!! супер, ребята! –