【问题标题】:PHP Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTIONPHP Parse 错误:语法错误,意外的 T_STRING,期待 T_FUNCTION
【发布时间】:2010-11-20 07:17:57
【问题描述】:

我的 PHP 代码中出现此错误:

PHP 解析错误:语法错误,意外的 T_STRING,在第 54 行的 C:\Inetpub\wwwroot\webroot\www.novotempo.org.br\lib\Twitter.php 中需要 T_FUNCTION

有问题的行:

define('DEBUG',false);

在网上搜索我发现这通常发生在您使用 PHP 4.xx 时,但我使用的是 5.2.6(刚刚使用phpinfo() 进行了检查)。

我在本地和其他两个外部主机中尝试过,但它一直返回相同的消息。

为什么会这样?我该如何解决?

【问题讨论】:

  • 真正的问题可能是它之前的几行之一
  • 你能贴更多代码吗(上面几行,下面几行)?
  • 在类方法中,当我注释 if 语句但忘记注释右大括号时出现此错误。这使我的下一行超出了函数定义。这是对静态类函数的调用,我想 PHP 将其视为意外的字符串文字。

标签: php parsing


【解决方案1】:

如果您尝试 DEFINE 在类内部但在函数外部进行某些操作,则会收到此错误。

(通常 PHP 会在一个类中寻找一个函数而不期待一个字符串的唯一地方,在一个方法之外)

IE:您的代码应该如下所示:

class myClass
{
    define("DEBUG", true);
    function myFunc()
     {
     }
}

【讨论】:

    【解决方案2】:

    谢谢你,我很快就解决了一个烦人的问题。

    我还想补充一点,在常量名称中使用连字符不起作用,显然是预期的行为。似乎 echo 试图在单词上评估数学(减号)。

    <?php
    define('THIS-IS-A-TEST','Testing');
    echo THIS-IS-A-TEST;
    ?>
    

    返回“0”

    <?php
    define('THIS_IS_A_TEST','Testing');
    echo THIS_IS_A_TEST;
    ?>
    

    返回“测试”

    【讨论】:

    • 其实你会在控制台日志中看到PHP Notice: Use of undefined constant: THIS - assumed 'THIS'
    猜你喜欢
    • 1970-01-01
    • 2017-06-20
    • 2013-04-12
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    相关资源
    最近更新 更多