【问题标题】:unexpected T_CONCAT_EQUAL [closed]意外的 T_CONCAT_EQUAL [关闭]
【发布时间】:2010-09-15 05:04:12
【问题描述】:

我在以下形式的一行中遇到意外的 T_CONCAT_EQUAL 错误:

$arg1 .= "arg2".$arg3."arg4";

我正在使用 PHP5。我可以简单地执行以下操作:

$arg1 = $arg1."arg2".$arg3."arg4";

但我首先想知道出了什么问题。有什么想法吗?

谢谢, 斯威尼

【问题讨论】:

    标签: php string concatenation


    【解决方案1】:

    这会在 $arg1 未定义(没有值,从未设置过)时发生。

    【讨论】:

    • bingo - 原来我在 $arg1 中留下了 $。不知道为什么它没有先捕捉到 T_VAR 但足够接近。谢谢老兄。
    【解决方案2】:

    听起来你忘记了上面一行的分号。

    【讨论】:

      【解决方案3】:

      所以最准确的原因是上面贴出的那行代码:

      $arg1 .= "arg2".$arg3."arg4";
      

      在我的源码中实际上如下:

      arg1 .= "arg2".$arg3."arg4";
      

      arg1 中缺少 $。我不知道为什么口译员没有先抓住它,但无论如何。感谢 Jeremy 和 Bailey 的意见 - 它让我找到了问题所在。

      【讨论】:

      • 当解释器遇到像'arg1'这样没有引号或任何东西的东西时,首先它检查它是否是一个已定义的常量,如果不是,它将它解释为字符串'arg1'。所以你得到了错误,因为它无法为常量字符串赋值。
      猜你喜欢
      • 1970-01-01
      • 2012-05-19
      • 2010-10-08
      • 1970-01-01
      • 2014-01-27
      • 2021-11-17
      • 2013-06-30
      • 2016-04-02
      • 2019-01-31
      相关资源
      最近更新 更多