在javascript中使用php代码是一个好习惯吗?

Is it a good practice to use php code inside javascript?

本文关键字:一个 好习惯 javascript 代码 php      更新时间:2023-09-26

我听到很多专家说在javascript中输入php代码不是一个好习惯。我想知道这是不是真的。如果是,那么它会影响性能吗?还是有其他原因?

例如:

<?php
$num=1;
?>
<script>
var x = "<?php echo $num;?>";
</script>

不,这不是好的做法。

它会影响性能吗?

我不知道你写那句话时指的是哪种表演,但关于我能想象到的所有表演,我会说:当然,没有。

还有其他原因吗?

混合两种语言很困难,因为它需要正确的编码。这使事情变得复杂。复杂性是一种不好的做法。

通常,使用语言 X 以语言 Y 生成代码是一种不好的做法。

尝试通过使数据成为其唯一的接口来解耦这两种语言 - 不要混合代码。

在您的示例中,您可以通过使用 PHP 填充可用于 JavaScript 的 cfg 结构来改进代码:

https://softwareengineering.stackexchange.com/questions/126671/is-it-considered-bad-practice-to-have-php-in-your-javascript

否 它不会影响性能,但会影响可管理性和安全性

在你的情况下,你的javascript可以在不知道num值的情况下运行吗?或者你只是从PHP开发JS脚本?后者是您应该避免的使用。

让我们举一个例子,其中num被用来了解购物车中的商品数量。这是一个非常重要的信息,但是由于它的JS,它可以很容易地纵。在这种情况下,您应该将此类敏感信息存储在服务器上,而不是客户端上。

几点:

  1. 您将失去缩小JS脚本的能力,因为它取决于PHP输出
  2. 代码很快就会变得难以维护。您需要扫描JavaScript代码中的PHP标签。

通常,我声明一个全局配置对象,并在页面加载时通过单独的 ajax 请求将其拉取(这可以是回显 JSON 的 PHP 脚本)。

MyApp : {
   x: '123',
   y: 'xxx'
}

然后稍后从我的 JavaScript 文件访问它:

(function(){
   alert(MyApp.x)
})();
我不

认为这是一个不好的做法,如果值是动态的,你可以这样做,

测试.php

<script type="text/javascript">
    var foo = '<?php echo $foo;?>';
</script>
<script type="text/javascript" src="test.js"></script>

测试.js

$(function(){
    alert(foo);
});

如果不是动态值,建议不需要使用 php 标签

我认为

它没有那么糟糕。将动态 PHP 值分配给 PHP 模板中的 JavaScript 变量(如果可能,作为第一行),然后在外部 JavaScript 文件中调用这些变量。我完全同意@hakre答案。