我收到一个致命错误:在第 317 行的 Stemmer.php 中不在对象上下文中时使用 $this。
目前,我正在使用我在互联网上找到的 Stemmer 类将单词更改为词干版本,然后再在数据库中搜索匹配项。
我已经阅读了人们遇到类似问题的所有相关帖子。不同之处在于导致错误的代码肯定在对象上下文中(下面的代码将显示这一点)。另一个奇怪的事情是,代码中的某些部分与之前和之后的错误非常相似,似乎不会造成任何困难。在不同的时间,错误行已更改为其他一些行。
有没有人有任何想法可能导致问题。如果这有什么不同,我正在使用 php5.1.34。
调用 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;
}
}
词干类:
class Stemmer
{
...
if ( strlen($word) > 2 ) {
**$word = $this->_step_1($word);**
}
...
}
即使错误发生在代码中的不同位置,似乎总是有代码试图在同一个类中调用另一个方法。这可能是我不知道的 php5 中的错误吗?任何建议将不胜感激。
谢谢阿奇