将Javascript和PHP变量相等

将Javascript和PHP变量相等,javascript,php,html,variables,web,Javascript,Php,Html,Variables,Web,这段代码显示cat,这是将javascript变量等同于php变量的有效方法吗,valid可能不是我会使用的词。对我来说,这个问题更重要。一般来说,由于PHP在将页面返回到浏览器之前在服务器上运行,然后浏览器解释并执行JavaScript,因此您肯定可以编写JS将使用的变量。那么这行得通吗?当然 有更好的方法吗?是的,绝对是。通常,您不希望可执行JS语句块驻留在PHP脚本中。这只会把事情搞得一团糟,让它们很难维护。我更愿意让JS通过对PHP服务的AJAX调用来请求值。如果您必须使用这种方法,我仍

这段代码显示cat,这是将javascript变量等同于php变量的有效方法吗,

valid可能不是我会使用的词。对我来说,这个问题更重要。一般来说,由于PHP在将页面返回到浏览器之前在服务器上运行,然后浏览器解释并执行JavaScript,因此您肯定可以编写JS将使用的变量。那么这行得通吗?当然

有更好的方法吗?是的,绝对是。通常,您不希望可执行JS语句块驻留在PHP脚本中。这只会把事情搞得一团糟,让它们很难维护。我更愿意让JS通过对PHP服务的AJAX调用来请求值。如果您必须使用这种方法,我仍然会更好地分离关注点

编辑:这对我有用:

<?php 

$a="cat";

$html=<<<HTML
<html>
<script>
   var b ="$a";
   document.write(b);
</script>
</html>
HTML;

echo $html;?>

PHP-JS编写器

如果要将PHP变量转换为Javascript,最好使用json_encode,因为它可以处理所有转义等操作:

<html>
<head>
    <title>PHP-JS Writer</title>
</head>
<body>
    <?php
        $a = "cat";
        echo "<script>var b = '$a'</script>";
    ?>      
    <h1>Writing JS variables with PHP</h1>
    <script>
        alert(b);   
    </script>
</body>
</html>

变量a=;
控制台日志(a);
您也可以将其用于更复杂的结构:

<?php $a = "some value"; ?>

<script>
    var a = <?php echo json_encode($a); ?>;
    console.log(a);
</script>

变量a=;
console.log(a.property);
当然,PHP是在服务器端和JavaScript客户端进行评估的,因此无法让JavaScript“与PHP对话”,就好像它在同一个执行范围内一样,而根据定义,它们并不在同一个执行范围内。这是序列化和反序列化的一个非常基本的概念,可以让一个平台使用另一个平台的数据


您可以实现异步请求(“ajax”)来从服务器检索数据,并让服务器用JSON响应,这样Javascript引擎就可以本地解析响应内容。这样做的好处是,您的客户端可以在不重新加载的情况下重新检索数据,但缺点是需要执行(至少)两个HTTP请求。

如果它回显“cat”,则它必须是。sidenote:
作为结束标记。@Fred-ii-您可以使用document.write()测试它吗?测试变量passI时会得到类似echo'var b=“cat”的输出;对,因为这是php变量的值。你期望它做什么?在我使用var b=“”)这样的代码之前;但这开始显示。。。
<script>
    var a = <?php echo json_encode(array('property' => 'value')); ?>;

    console.log(a.property);
</script>