8
votes

Erreur fatale: en utilisant $ ceci quand pas dans le contexte de l'objet

Voici la partie si vous avez une erreur.

erreur fatale: en utilisant $ ceci quand pas dans contexte d'objet dans /pb_events.php sur la ligne 6 p> blockQuote>

ligne 6 est: jpp = $ jpp = $ ceci-> vars-> données ["JPP"]; code> p>

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]}");


0 commentaires

4 Réponses :


15
votes

$ Celui-ci n'a aucun sens dans les méthodes, pas dans les fonctions

Ceci est OK P>

function some() {
    $this->


5 commentaires

Merci pour votre réponse! Ceci est un code Softwares OpenSource qui fonctionnait bien sur PHP4. Maintenant, j'essaie sur PHP5 et j'ai des erreurs: / Je ne suis pas très bon chez PHP: / essayant de régler le problème en fonction de votre conseil ...


Alors, comment puis-je modifier cela? : / Si je mets une classe sur le dessus, les autres pages ne fonctionnent pas ... Gros mess


Wowowowow Man !! JE VOUS AIME@@@@!!!! Save Saver !!!! Merci beaucoup d'homme !! :)) Woaaaa si heureux !!


Vous obtiendrez également cette erreur si vous utilisez Self :: Bar () Même à l'intérieur de FOO.


Vous obtiendrez également cette erreur si vous vous déclarez votre méthode en tant que statique. Toutes les méthodes statiques sont considérées comme appelées en dehors de la portée de la classe



7
votes

Vous ne pouvez pas passer $ ceci à une fonction procédurale. $ CU est une variable réservée.


3 commentaires

Hey, merci! Alors, quel est votre conseil pour la solution? Pouvez-vous être un peu plus clair? Je ne suis pas très bon à php: /


Il suffit de changer le nom de la variable passée. Vérifiez ma réponse.


Michael est absolument correct. Il suffit de changer le nom de la variable.



0
votes

Vous devez faire l'objet d'abord.

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


0 commentaires

5
votes

selon mes commentaires. Vous souhaitez utiliser $ CU code> comme une variable croisée et PHP ne le permet pas de la méthode de classe en dehors du corps.

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]}");


1 commentaires

Oui ! c'est le problème! Comment im! Triement juste avant votre commentaire ... vous économisez la vie aussi !! Merci beaucoup!!! Super vous êtes les gars!