0

エラーが発生しました:

Parse error: syntax error, unexpected T_STRING in /mysite/my_library.php on line 43

ただし、それが示唆するコードでsynatxエラーを見つけることができません。

/*
 * Get Full Filter Name from Abbreviation
 */
function getFilterName ($filterAbbreviation) {
    $filters = array(
        "R" => "Restuarant",
        "B" => "Bar",
        "S" => "Store",
        "L" => "Lodging",
        "Q" => "Recreation",
        "G" => "Gas Station",
        "E" => "Entertainment",
        "C" => "Club"
    );
    return $filters[$filterAbbreviation];
}
/*
 * Parse Filterstring 
 */
function parseFilterString($filterString) {
    $returnVal = "";
    $filterLetters = str_split($filterString, 1);
    for($x = 0; $x < strlen($filterString); $x++) {
        $returnVal .= "(type <=> '" . getFilterName($filterLetters[$x]) . "') OR ";
    }    
    if (strlen($returnVal) > 0) $returnVal =  substr($returnVal,0,-4); //remove final " OR " from filterstring
    else $returnVal = "type = 'VOID'";  //if everything is filtered, make sure to set type to something not available
    return $returnVal;
}

このコードは、ユーザーがを使用してクエリを実行しているページから参照されていることに注意してくださいrequire()

4

1 に答える 1

1

その理由は(あなたの場合)、エディターがテキストに隠し文字を挿入したためです。(エディターはコンピュータープログラムであり、すべてのコンピュータープログラムがうまくいかないことがあります!)。手がかりは、スペースについて不平を言っているように見えたが、スペースは引用符で囲まれていない限り文字列ではないため、何かが間違っている。そして何が悪いのかというと、それはスペースではなく、何か他のものだということです...

解決策は、この隠された文字を削除することです。最も安全なのは、行を削除して再入力することです。ただし、非表示の文字が終了行(CR / CRLF)マーカー内にある場合に備えて、上下の行も削除することをお勧めします。

したがって、上の行、問題のある行、および下の行を選択します(すべて一度に、3行一緒に)。「削除」をクリックします。次に、[入力](切り取って貼り付けないでください)しますが、キーボードを使用して問題のある行を入力し直します。

(注-これは機能せず、エラー行が単に移動する可能性があります。これは、deleteが非表示の文字を認識できず、期待するテストのみを削除する場所です。このための秘訣は、問題のある行を実行するすべてのものをコピー/貼り付けすることです+ / -1を別のファイルに入力し、問題のある行+/- 1をその新しいファイルに入力します。あなたの場合、それは必要ありませんでした。回答を完全にするために追加しています)。

于 2012-11-26T00:26:56.100 に答える