【问题标题】:Embedding JavaScript in PHP [closed]在 PHP 中嵌入 JavaScript [关闭]
【发布时间】:2015-06-27 19:44:02
【问题描述】:

我只想简单解释一下在 php 中嵌入 javascript 是如何工作的,以及为什么我们需要回显它。我只需要了解将 javascript 嵌入 php 的概念。我可能只是让自己感到困惑,但我只需要有人对这个话题有所了解。

【问题讨论】:

  • 您希望在 PHP 中嵌入 javascript 的目的是什么?问题很模糊?
  • js 只是 php 的另一个字符串。
  • 龙,不正确。
  • @Jason,分享智慧
  • 不知道为什么有人打扰,这只是一个应该关闭的糟糕问题。

标签: javascript php


【解决方案1】:

它就像任何其他编程语言一样 - 您只能使用特定的编程语言来完成某事。例如

<?php
$x = 42; // php variable assignment
alert($x); // javascript function call

这永远行不通。 `alert() 是一个 JS 函数,它(通常)在 PHP 中没有类似物,因此这会因未定义函数错误而死。

由于 PHP 可以嵌入到其他语言中,并且其他语言可以“嵌入”到 PHP 中,您必须在两者之间有明确的分隔符,这样编译器就可以分辨出一种语言的结尾和另一个开始。使用 php,可以通过对 JS 代码进行“回显”或“突破”PHP 模式来实现:

<?php
$x = 42;
?>
alert(<?php echo $x; ?>);

<?php
$x = 42;
echo 'alert(' . $x . ')';

归结为“上下文”。如果您处于 PHP 模式(例如在 &lt;?php ... ?&gt; 块中,您正在编写 PHP 代码,而您在其中使用的任何其他语言(html、JS)就 PHP 而言只是纯文本。

如果您“退出”了 PHP 模式,那么您处于周围块正在使用的任何语言环境中。

<script>
   var x = 42;
   <?php // some php code here that causes output />
</script>

在上述情况下,您的“上下文”是 javascript - PHP 导致输出的任何内容都必须在其嵌入的 Javascript 上下文中有效。

虽然

var x = <?php echo 42; ?>;

会起作用,因为42 是在该特定位置具有的有效文本位,因此具有无效

var x = <?php echo '</script>'; ?>;

这会产生无意义的

var x = </script>;

【讨论】:

  • 综合...不错!
  • 谢谢马克!这很有帮助。
【解决方案2】:

JavaScript 是客户端,PHP 是服务器端... PHP 无法访问 Javascript.. 您必须使用 AJAX 之类的东西来传回和第四.. 另一方面,您可以在 JavaScript 中显示 PHP。

<?
$a = "25";
?>
<script>
alert(<? echo $a ?>)
</script>

这可行,但反之亦然,除非您使用 Ajax。

【讨论】:

    【解决方案3】:

    您应该尽可能地尝试区分语言。

    与 PHP 解析的任何其他数据一样,它只会输出您告诉它的内容。因此,如果您不告诉 PHP 将数据发送到浏览器,它就不会发送它。

    关于语言分离,有很多 PHP 模板引擎可以开箱即用地为您做到这一点。你只需要在他们的框架内工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      • 2010-10-10
      • 2010-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多