【问题标题】:Atom Editor: Error when PHP is inside JavascriptAtom 编辑器:当 PHP 在 Javascript 中时出错
【发布时间】:2017-01-02 20:38:42
【问题描述】:

我在 ATOM 的 PHP 页面中有以下代码:

<html>
  <head>
    <?php $testvar = "Test"; ?>

      <script> 
        var test = <?php echo $testvar; ?>;
      </script>

  </head>

  <body>

  <p> This is a test. </p>

  </body>
</html>

该页面完全按照 PHP 页面上的计划运行,但在 Atom 中,&lt;/script&gt; 行之后的所有内容都以红色突出显示为错误。这是怎么回事?

这是我正在使用的实际代码的屏幕截图。上面是一个例子,但也有同样的问题。

我在 Atom 支持上打开了 Issue claim,但我也想在这里尝试一下,看看它是否包含在代码中。

谢谢!

Image

【问题讨论】:

  • @AndrewLi 感谢您的回复。当我删除 &lt;script type="text/javascript"&gt; // Storing JS Result var main_categories_array = [&lt;?php echo '"'.implode('","', $main_categories_array ).'"' ?&gt;]; &lt;/script&gt; 时 IDE 显示正常,但添加它时问题就在这里。
  • 请不要在人们发布答案后大幅更改您的问题。您使用的是哪个代码?您在编辑中添加的代码,或屏幕截图中的“实际代码”导致语法错误?

标签: javascript php atom-editor


【解决方案1】:

这是您的代码中的错误,而不是 Atom 中的错误。您的 echo 语句会生成一个未封闭的字符串:

<script> 
    var test = Test;
</script>

这会导致 JavaScript 错误(“未捕获的 ReferenceError:未定义测试”),因为您告诉解释器使用名为 Test 的变量,但不存在。

您需要生成一个正确封闭的字符串,您可以使用json_encode()

<script> 
    var test = <?php echo json_encode($testvar); ?>;
</script>

根据您的评论,您实际上是在尝试构建一个数组,而不仅仅是回显一个字符串。你有这个代码:

var main_categories_array = [<?php echo '"'.implode('","', $main_categories_array ).'"' ?>];

如果您的数组包含任何引号,例如简单的“测试”示例,您将得到错误。所以,你的代码应该是:

var main_categories_array = <?php echo json_encode($main_categories_array); ?>;

【讨论】:

  • 感谢您的回复。我认为这也可能是它(来自在线阅读)并且页面加载正常并且按计划执行所有操作。这里的问题是 IDE 以红色显示所有内容。截图:i.imgur.com/IUyqK9z.png
  • @hinteractive02 根据您的评论,您的代码应该是var main_categories_array = &lt;?php echo json_encode($main_categories_array); ?&gt;;
  • Ed,这是我已经编写的代码 - 正如我发布的屏幕截图中所示:i.imgur.com/IUyqK9z.png
  • @hinteractive02 这就是为什么您不会在帖子中省略关键信息的原因,但请务必包含实际问题的minimal reproducible example。我按照书面回答了你的问题,然后你改变了它。坦率地说,这是非常糟糕的形式。此外,您添加的代码与您在对问题的评论中使用的代码或屏幕截图中显示的代码不同。一个是正​​确的,另一个是非常错误的。那么,它是什么?
  • @hinteractive02 我确实审查了您的代码,但您忽略了我的 cmets。请注意,辱骂违反了我们的"Be Nice" 政策。
【解决方案2】:

这是昨天 1 月 10 日发布的 1.13 中修复的实际错误。

来源:

【讨论】:

    【解决方案3】:

    这是 Atom 的一个错误。

    在这里发布:https://github.com/atom/atom/issues/13532

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-27
      • 2019-11-11
      • 1970-01-01
      • 2021-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多