2009-10-29 13 views
7

aquí está la parte si tiene un error.

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

línea 6 es: $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]}"); 

Muchas gracias! ¡apreciar!

Respuesta

13

$ esto sólo tiene sentido en los métodos, no en funciones

esto está bien

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

esto no es

function some() { 
    $this-> 

// editar: no se dio cuenta que pasa " $ this "como parámetro

consejo: simplemente reemplace" $ this "con" $ somethingElse "

+0

gracias por la respuesta! este es un código de softwares de código abierto que funcionaba bien en PHP4. ahora probé en PHP5 y tengo errores:/No soy muy bueno en php:/tratando de resolver el problema de acuerdo a su consejo ... –

+0

entonces, ¿cómo puedo editar esto? :/si pongo una clase en la parte superior, las otras páginas no funcionan ... gran lío –

+0

wowowowow man !! TE [email protected]@@@!!!! ¡AHORRADOR DE VIDA! ¡¡MUCHAS GRACIAS HOMBRE!! :)) woaaaa tan feliz !! –

6

No puede pasar $this a una función de procedimiento. $this es una variable reservada.

+0

¡eh, gracias! Entonces, ¿cuál es su consejo para la solución? puedes ser un poco mas claro? No soy muy bueno en php:/ –

+3

simplemente cambie el nombre de la variable pasada. revisa mi respuesta. –

+0

¡Un gran juego! –

0

Primero tiene que hacer el objeto.

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

Según mis comentarios. Quiere usar $this como variable pasada y php no lo permite fuera de los métodos de clase cuerpo.

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

¡sí! ese es el problema! ¡Qué tonto soy! ordenados justo antes de tu comentario ... ¡tu salvador también! ¡¡¡muchas gracias!!! super ustedes chicos! –

Cuestiones relacionadas