我收到致命错误:在第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;
}
}
Run Code Online (Sandbox Code Playgroud)
Stemmer类:
class Stemmer
{
...
if ( strlen($word) > 2 ) {
**$word = $this->_step_1($word);**
}
...
}
Run Code Online (Sandbox Code Playgroud)
即使错误发生在代码中的不同位置,似乎总是在有代码试图在同一个类中调用另一个方法时.这可能是我不知道的php5中的错误吗?任何建议都将非常感激.
谢谢Archie