如何理解PHP语法错误?

时间:2012-08-18 15:19:47

标签: php command-line syntax interpreter

我是使用PHP的新手,但这已经困扰了我一段时间了。这是我的test.php

<?PHP

$db = 'str1';
$sql = 'str2';
$cat = $sql . $db
echo $cat
?>

首先,当我运行php test.php时,我没有输出。我现在知道我在这里错过了分号或2号。如果php告诉我语法错误在哪一行会很好。我能得到的最好的是运行php -l,这表明存在语法错误。但似乎我可以获得更多信息?知道怎么样?

2 个答案:

答案 0 :(得分:3)

您在最后2行中缺少;,这就是您遇到错误的原因。要查看此错误,请确保PHP配置中已启用error_reporting

示例

<?PHP
    error_reporting(E_ALL);
    $db = 'str1';
    $sql = 'str2';
    $cat = $sql . $db ;
    echo $cat ;
?>

答案 1 :(得分:0)

PHP无法告诉你具体的事情,但它可以告诉你哪一行有错误。

如果您没有看到这类错误,那么您的error_reporting可能会隐藏这些错误。

在您的PHP ini中,您可以设置:

  • display_errors1
  • html_errors1
  • error_reportingE_ALL

它会告诉你什么时候它无法正确解析一条线,但它不会明确地告诉你这条线有什么问题:

OMFG it's missing a semicolon

据说它可以告诉你其他具体的事情:

  • 当文件不存在时
  • 未定义变量时
  • 当班级不存在时

还有其他的东西,但是没有,上次我检查语法错误时只是报告了。