如何在Javascript中使用PHP变量

如何在Javascript中使用PHP变量,javascript,php,Javascript,Php,我正在用php开发一个web应用程序,我已经多次使用javascript。现在我需要在javascript中使用一个php变量。 例如,从SQL查询返回生成的变量,或javascript部分中需要的会话变量 在javascript中使用php变量的最佳方式是什么?也许您可以执行以下操作: <script> var a = <?php echo $a; ?>; //for numbers </script> 变量a=//数字 这是实现你想要的一个基本方

我正在用php开发一个web应用程序,我已经多次使用javascript。现在我需要在javascript中使用一个php变量。 例如,从SQL查询返回生成的变量,或javascript部分中需要的会话变量


在javascript中使用php变量的最佳方式是什么?

也许您可以执行以下操作:

<script>
  var a = <?php echo $a; ?>; //for numbers
</script>

变量a=//数字
这是实现你想要的一个基本方法

编辑:正如JiteshNK所指出的,您还可以:

<script>
  var a = <?php echo json_encode($a); ?>; //safest solution
</script>

变量a=//最安全的解决方案

如果是简单的字符串变量,则使用

<script>
    var a = "<?php echo $var; ?>";
</script>

var a=“”;
如果php变量是数组,那么

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

// Use resultArray values in javascript
$.each(resultArray, function(index, value) {

}
var resultArray=
//在javascript中使用resultArray值
$.each(结果数组、函数(索引、值){
}

我不完全理解你想做什么。 基本上,我不认为你想做什么是可能的。 原因:JavaScript正在浏览器中运行。当您的JavaScript代码执行时,页面已经加载。那时,不再有PHP这样的东西可用。您的浏览器只知道HTML。 PHP在服务器上运行,用于“构造”或“构建”或“编译”HTML页面。
您肯定可以做的是:您可以使用PHP动态创建JS代码(就像您已经使用HTML文件那样),然后使用PHP用PHP变量的内容填充JS变量。

您可以执行以下操作:

如果为正态变量:


变量a=;

如果您有json:


变量a=;

如果php变量不是数组
var name=;
如果它是数组,那么
var name=;
请注意,第一个选项仅适用于数值,任何其他选项(包括字符串)都将导致错误。@jeroen,true。您可以将php标记用引号括起来。不太可能,如果字符串包含引号呢?
json\u encode()
是最好的/唯一的选项。请注意,
json_encode()
将在字符串周围加引号,并转义其中的任何引号。这当然是最好的方法,但仍然是一个选项:)@jeroen很好,您的观点将帮助初学者。您所说的是正确的,但是,正如您所说,php可以在构建文档时将变量输出到脚本标记。然后,js在执行时会有这个变量。嗯,不完全是。这不是PHP变量。它是一个JS变量,可能具有相同的名称和值。但是PHP变量在那个时候已经不存在了。如果JS更改了变量的值,则不会对任何PHP变量进行反馈,因为它已经不存在了。为了理解为什么不能在JS中使用PHP变量,理解这一点很重要。顺便说一句,如果你否决了我的答案,请你解释一下,为什么?这里没有兴趣“更新”php变量。OP想要的只是将php变量的值传递给js变量,可以这么说。不,顺便说一句,我没有投反对票。你可能是对的。对我来说,这不是很清楚(他根本没有在问题中使用“价值”一词)。不过,这个问题有一个公认的答案,你的理解似乎是正确的。这就是最重要的:-)如果它是一个简单的字符串变量,那么
var a=
将不起作用。字符串将被视为变量名或(如果它包含空格等)语法错误。如果它是“普通变量”,无论这意味着什么,那么
var a=
将不起作用。字符串将被视为变量名或(如果它包含空格等)语法错误。如果您有JSON,那么将其编码为JSON是没有意义的。
<script type= "text/javascript">
  var a = <?php echo $var; ?>;
</script>
<script type= "text/javascript">
  var a = <?php echo $json_encode($var); ?>;
</script>