致命的なエラーが発生します:317行目のStemmer.phpのオブジェクトコンテキストにないときに$thisを使用します。
現在、インターネットで見つけたStemmerクラスを使用して、データベースで一致するものを検索する前に、単語を語幹バージョンに変更しています。
私は人々が同様の問題を抱えているすべての関連する投稿を読みました。違いは、エラーの原因となっているコードが間違いなくオブジェクトコンテキスト内にあることです(以下のコードはそれを示しています)。もう1つの奇妙な点は、コードの前後にエラーと非常によく似た部分があり、問題を引き起こしていないように見えることです。異なる時間に、エラー行がこれらの他の行のいくつかに変更されました。
誰かが問題を引き起こしている可能性のあるアイデアを持っていますか?これで違いが出る場合は、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のバグでしょうか?任意のアドバイスをいただければ幸いです。
ありがとうアーチー