意外的T_STRING,找不到语法错误

时间:2012-11-25 23:05:48

标签: php

我收到错误:

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()查询的页面引用的。

1 个答案:

答案 0 :(得分:1)

原因(在您的情况下)是您的编辑器在文本中插入了隐藏的字符。 (编辑器是一个计算机程序,有时计算机程序出错了!)。线索是它似乎抱怨空间,但除非被引号包围,否则空格不是字符串,所以有些不对劲。错误的是它不是空间,而是其他东西......

解决方案是删除此隐藏字符。最安全的是删除该行并重新键入 - 但是如果隐藏字符在终点行(CR / CRLF)标记内,最好删除上下行。

因此,选择上面的行,违规行和下面的行(一次性全部,三行一起)。点击“删除”。然后选择TYPE(不剪切和粘贴),但使用键盘键入有问题的线条。

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