0

我收到错误消息:

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

但是,我在它建议的代码中找不到任何语法错误:

/*
 * 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) 标记内,最好也删除上面和下面的行。

所以,选择上面的行,有问题的行和下面的行(一口气,三行一起)。点击“删除”。然后键入(不要剪切和粘贴),但使用键盘重新键入有问题的行。

(注意 - 这不起作用,错误行可能只是移动。这是 delete 无法看到隐藏字符并且只删除它期望的测试的地方。这样做的诀窍是复制/粘贴所有内容 execpt 有问题的行 +/ - 1 到另一个文件中,然后在那个新文件中输入有问题的行 +/-1。在你的情况下,你不需要它,我只是为了回答的完整性而添加)。

于 2012-11-26T00:26:56.100 回答