饮歌长啸
您的代码分为两个完全独立的部分,即服务器端和客户端。 | ----------> HTTP request |+--------------+ | +--------------+| | | | || browser | | | web server || (JavaScript) | | | (PHP etc.) || | | | |+--------------+ | +--------------+ | client side | server side | var foo = 'bar'; <?php file_put_contents('foo.txt', ' + foo + '); ?> var baz = <?php echo 42; ?>; alert(baz);第1步,PHP执行<?php ?>标记之间的所有代码。结果是这样的:该file_put_contents呼叫并没有导致任何东西,它只是写了“+富+”到文件中。该<?php echo 42; ?>调用导致输出“42”,现在该代码曾经是该代码的位置。生成的HTML / JavaScript代码现在发送到客户端,在那里进行评估。该alert呼叫工作,而foo变量没有任何地方使用。在客户端甚至开始执行任何JavaScript之前,所有PHP代码都在服务器上执行。JavaScript可以与之交互的响应中没有任何PHP代码。要调用某些PHP代码,客户端必须向服务器发送新的HTTP请求。这可以通过三种可能的方法之一发生:一个链接,导致浏览器加载新页面。表单提交,将数据提交到服务器并加载新页面。一个AJAX请求,它是一种Javascript技术,可以向服务器发出常规HTTP请求(如1.和2.将),但不会离开当前页面。这是一个更详细地概述这些方法的问题您还可以使用JavaScript使浏览器使用window.location或提交表单打开新页面,模拟可能性1.和2。