我听说很多专家说在javascript中输入php代码不是一个好习惯。我想知道这是不是真的。如果是,那么它会影响性能吗?还是有其他原因吗?
例如:
<?php
$num=1;
?>
<script>
var x = "<?php echo $num;?>";
</script>
答案 0 :(得分:2)
不,这不是好习惯。
会影响表现吗?
我没有具体知道你写这行时你的意思,但我能想象的所有表演,我会说:当然,没有。
还有其他原因吗?
混合两种语言很难,因为它需要适当的编码。这使事情变得复杂。复杂性是不好的做法。
答案 1 :(得分:1)
通常,使用语言X生成语言Y中的代码是不好的做法。
尝试通过将数据作为唯一的接口来解耦这两种语言 - 不要混淆代码。
在您的示例中,您可以使用PHP填充可用于JavaScript的cfg结构来改进代码:
答案 2 :(得分:1)
不会影响性能,但会影响可管理性和安全性。
在您的情况下,您的javascript功能是否可以在不知道num
的值的情况下运行?或者您只是从PHP开发JS脚本?后者是你应该避免使用的。
让我们举个例子,用num
来了解购物车中的商品数量。现在这是一个非常重要的信息,但由于它的JS,它很容易被操纵。在这种情况下,您应该将这些敏感信息存储在服务器上而不是客户端上。
答案 3 :(得分:0)
几点:
通常,我声明一个全局配置对象,并在页面加载时通过单独的ajax请求将其拉出(这可以是一个回显JSON的PHP脚本)。
MyApp : {
x: '123',
y: 'xxx'
}
然后再从我的javascript文件中访问它:
(function(){
alert(MyApp.x)
})();
答案 4 :(得分:0)
我不认为这是一种不好的做法,如果价值观是动态的,你可以这样做,
<强> test.php的强>
<script type="text/javascript">
var foo = '<?php echo $foo;?>';
</script>
<script type="text/javascript" src="test.js"></script>
<强> test.js 强>
$(function(){
alert(foo);
});
如果它不是动态值,建议不需要使用php标签
答案 5 :(得分:0)
我认为不是那么糟糕。将动态PHP值分配给PHP模板中的JavaScript变量(如果可能,请作为第一行),然后在外部JavaScript文件中调用这些变量。我完全同意@hakre的答案。