您必须记住,如果JS和PHP位于同一个文档中,则将首先在服务器上执行PHP,然后在浏览器上执行JS,并且两者将永远不会交互(除非您在哪里用PHP输出JS,这实际上不是两个引擎之间的交互)。
考虑到这一点,最接近的方法是在JS中使用PHP变量:
<?php$a = 'foo'; // $a now holds PHP string foo?><script> var a = '<?php echo $a; ?>'; //outputting string foo in context of JS//must wrap in quotes so that it is still string foo when JS does execute//when this DOES execute in the browser, PHP will have already completed all processing and exited</script><?php//do something else with $a//JS still hasn't executed at this point?>
正如我所说,在这种情况下,PHP(全部)在服务器上首先执行,导致:
- 一个PHP变量
$a
,将其创建为字符串“ foo” - 在
$a
某些Javascript(当前未执行)的上下文中要输出的值 - 用PHP完成更多工作
$a
- 所有输出,包括带有var分配的JS,都将发送到浏览器。
如所写,这导致将以下内容发送到浏览器以执行(为清楚起见,我删除了JS注释):
<script> var a = 'foo';</script>
然后,直到那时,JS才会开始执行,并将其自己的变量
a设置为“ foo”(此时,PHP不在画面内)。
换句话说,如果两者位于同一个文档中,并且没有与服务器进行任何额外的交互,则JS不会对PHP产生任何影响。此外,PHP对JS的影响仅限于简单地输出某些JS或在JS上下文中输出内容的能力。



