如何检测 PHP 中的语法错误


How to detect a syntax error in PHP?

>我有一个PHP语法错误,叫做

解析错误:语法错误、意外的 '' (T_ENCAPSED_AND_WHITESPACE)、第 189 行的 C:''xampp''htdocs''playit2''rental_list.php 中的标识符 (T_STRING) 或变量 (T_VARIABLE) 或数字 (T_NUM_STRING

第 189 行是

$jsql_ae3 = mysql_query("select products.formats from products where products.id='$jrowa2['id']'") or die(mysql_error());

对于数组和函数,您需要添加大括号:

$jsql_ae3 = mysql_query("select products.formats from products where products.id='{$jrowa2['id']}'") or die(mysql_error());

当你使用这样的数组时

$jrowa2['id']

在带有双引号的字符串中,PHP 您进行插值并尝试解释它,但是,在这种情况下,您不能使用键周围的简单引号,您只需写入键(因为它已经在字符串中),然后,您只需使用

$jrowa2[id]

使用带有语法突出显示的 PHP IDE,如 NetBeans 或 PHPStorm。

在这种特殊情况下,您可以在单引号和数组访问之间插入一对括号来修复此行:

$jsql_ae3 = mysql_query("select products.formats from products where products.id='{$jrowa2['id']}'") or die(mysql_error());
应该是

-

"select products.formats from products where products.id='$jrowa2[id]'"

随之更改

$jsql_ae3 = mysql_query("select products.formats from products where products.id='$jrowa2[id]'") or die(mysql_error());

php_check_syntax应该为您完成这项工作。但是,这仅在您运行的是 PHP>= 5.05 时才适用。评论部分的第一条评论将向您展示如何实现。

$jsql_ae3 = mysql_query("select products.formats from products where products.id='".$jrowa2['id']."'") or die(mysql_error());

试试这个。

 $jsql_ae3 = mysql_query("select products.formats from products where products.id="$jrowa2['id']"") or die(mysql_error());

希望这有帮助。