在特定点将PHP变量传递给Javascript

在特定点将PHP变量传递给Javascript,php,javascript,variables,Php,Javascript,Variables,我正在向Javascript传递一个PHP变量,但只在代码中的特定点传递。随着PHP代码的继续,我需要更改变量。当页面加载完成时,我可以轻松地运行Javascript并获取PHP变量,但这不会传递我想要的信息。我希望Javascript在此时获取PHP变量,然后忽略对它的后续更改 我正在使用的实际程序有几千行代码,所以我创建了一个简单的页面来处理这个问题。下面的代码显示了我正在尝试做的事情 <?php $php_var = 'something'; if(true) { $php_

我正在向Javascript传递一个PHP变量,但只在代码中的特定点传递。随着PHP代码的继续,我需要更改变量。当页面加载完成时,我可以轻松地运行Javascript并获取PHP变量,但这不会传递我想要的信息。我希望Javascript在此时获取PHP变量,然后忽略对它的后续更改

我正在使用的实际程序有几千行代码,所以我创建了一个简单的页面来处理这个问题。下面的代码显示了我正在尝试做的事情

<?php
$php_var = 'something';
if(true) {
    $php_var = 'new';
    echo ' 
        <script type="text/javascript"> 
            js_var="<?php echo $php_var; ?>"; 
            alert(js_var);
        </script>
    ';
}
$php_var = 'later changes';
?>

<script type="text/javascript">
    var js_var;
</script>

var-js_-var;

然而,这不起作用。运行内联脚本时会设置js_var,但它只是设置为一个表示
的字符串,而不是实际计算它。

PHP首先运行,发送到浏览器的任何js都会运行。我想你只是想要这个:

echo '<script type="text/javascript">
    js_var = '.json_encode($php_var).';
    alert(js_var);
</script>';
echo'
js_var='.json_encode($php_var.);
警报(js_var);
';
$php\u var=“foo”;
回声'
var js_var='。json_编码($php_var)。”;
警报(js_var);
';
产生:

<script>
var js_var = "foo";
alert(js_var);
</script>

var js_var=“foo”;
警报(js_var);

是的。就这样。谢谢这是因为is extra和单引号字符串不处理变量。试试echo(“js_var=$phpvar;alert(js_var);”;
<script>
var js_var = "foo";
alert(js_var);
</script>