Je reçois une erreur fatale: Utiliser $ quand pas dans le contexte de l'objet dans Stemmer.php en ligne 317.
A au moment où j'utilise la classe Stemmer que j'ai trouvée sur Internet pour changer les mots à leur version stemmed avant de rechercher des correspondances dans la base de données.
J'ai lu tous les articles liés où les gens ont un problème similaire. La différence est que le code causant l'erreur est définitivement dans le contexte de l'objet (le code ci-dessous le montrera). L'autre chose étrange est qu'il y a des parties du code très similaires à l'erreur avant et après celle-ci qui ne semblent pas causer de difficultés. À différents moments, la ligne d'erreur a changé pour certaines de ces autres lignes.
Quelqu'un a-t-il une idée de ce qui pourrait causer le problème? J'utilise php5.1.34 si cela fait une différence.
Code qui appelle la classe Stemmer
if (isset($search) && $search != "") {
$filtered_words = WordFilter::filter($search);
foreach($filtered_words as $word) {
if(strlen($word) <= 2) {
continue;
}
$w = Stemmer::stem($word);
$stemmed_words[] = $w;
}
}
classe Stemmer:
class Stemmer
{
...
if (strlen($word) > 2) {
**$word = $this->_step_1($word);**
}
...
}
Même lorsque l'erreur se produit dans des lieux différents dans le code, il semble toujours être quand il y a un code d'essayer d'appeler une autre méthode dans la même classe. Serait-ce un bug de php5 que je ne connais pas? Tout conseil serait le plus apprécié.
Merci Archie
Merci beaucoup Pharalia. Cela fonctionne parfaitement maintenant, et je ne peux pas croire à quelle vitesse vous avez répondu! Santé mec! – archiebald
Ran dedans beaucoup quand auto-apprentissage PHP OOP de retour à l'Université .. ce message d'erreur doit être gravé dans mon âme: S – pharalia
aussi self :: _ step_1 ($ word); devrait faire l'affaire – michael