Using $this when not in object context

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Using $this when not in object context

Re: Using $this when not in object context

par Calimero » 06 mars 2010, 09:58

Hello,

déjà il y a une typo : preg_repalce...

Pour identifier l'erreur que tu nous signales, il serait utile d'avoir le code qui instancie l'objet et appelle la méthode. Je ne serais pas surpris que le problème s'y trouve.

Using $this when not in object context

par Gaetch » 05 mars 2010, 23:43

Bonjour, j'ai une petite erreur avec ce code et je ne vois pas d'où vient le problème. L'erreur est la suivante : "Using $this when not in object context in (nom du fichier) on line 16". Pourtant c'est bien un contexte objet, et j'ai bien instancié le tableau.

Code : Tout sélectionner

<?php class TemplateEngine { private $template; // Fichier template à utiliser, contenant les variables à substituer. private $variables; // Tebleau associatif qui contiendra les variables et les valeurs à leur substituer. public function __construct($template) { $this->template = addslashes($template); // $this->variables = array(); } // Ajouter une nouvelle variable à substituer. public function addVariable($variable, $content) { [b]$this->variables[$variable] = $content;[/b] // L'erreur est là. } // Affiche la page public function outputModifiedPage() { if (file_exists($this->template)) { // Récupération du contenu du template. $modifiedPage = file_get_contents($this->template); // Parcours du template et substitution des variables. foreach ($this->variables as $variable) { $modifiedPage = preg_repalce('#${'.$variable.'}#', $this->variables[$variable], $modifiedPage); } echo $modifiedPage; } else throw new Exception('Le fichier '.$template.' n\'existe pas'); } } ?>
Par la même occasion si certains voient d'autres erreurs, votre aide est la bienvenue.