PHP首先完成执行,然后运行javascript


php completes execution first, then javascript runs

根据主要接受的标题,如何解释以下内容:

       ...
       $temp1=$_POST['expert_id']; ?>
       <script type="text/javascript">
          var jstemp1 =<?php echo json_encode($temp1); ?>;
       </script>
       <?php         
       $temp1=$_POST['answers_id']; ?>
       <script type="text/javascript">
          var jstemp2 =<?php echo json_encode($temp1); ?>;
       </script>

假设$ _POST [' expert_id '] = 1, $ _POST [' answers_id '] = 2。我的想法是,当Javascript代码开始执行时,$temp1将等于2,因为PHP代码首先执行。因此,jstemp1将等于2,jstemp2将等于2。然而,令我非常惊讶的是,jstemp1=1和jstemp2=2。你能给我解释一下吗?

去掉所有的JavaScript,你应该看到服务器端发生了什么;你真的在做:

$temp1=$_POST['expert_id'];
echo json_encode($temp1);
$temp1=$_POST['answers_id'];
echo json_encode($temp1);

如果$_POST['expert_id'] = 1$_POST['answers_id'] = 2

$temp1=1;
echo json_encode($temp1);
// outputs 1
$temp1=2;
echo json_encode($temp1);
// outputs 2

客户端是:

<script type="text/javascript">
    var jstemp1 =1;
</script>
<script type="text/javascript">
    var jstemp2 =2;
</script>

所有服务器端代码(PHP)在客户端代码(JavaScript)之前执行

您的PHP代码与HTML/Javascript内联,它将首先在服务器上执行,真的,
但是评估是按照您编写的顺序完成的。

将值赋给变量,然后将其打印出来。
然后为同一变量赋不同的值,覆盖它,然后打印出来。

这很正常

PHP在将页面发送到浏览器之前在服务器端执行代码。

浏览器收到:

<script type="text/javascript">
  var jstemp1 =1;
</script>
<script type="text/javascript">
  var jstemp2 =2;
</script>

当页面加载时,执行javascript代码