Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将PHP数组传递给Javascript:为什么需要回显PHP变量?_Javascript_Variables - Fatal编程技术网

将PHP数组传递给Javascript:为什么需要回显PHP变量?

将PHP数组传递给Javascript:为什么需要回显PHP变量?,javascript,variables,Javascript,Variables,为什么在将PHP变量传递到javascript之前需要回显它 比如说, drawChart(600/50, <?php echo $day; ?>, ...) ? 谢谢您提出的问题需要解释一个强有力的概念性问题。PHP代码在web服务器上处理,称为服务器端代码,而javascript代码在服务器返回页面html后在web浏览器上执行,称为客户端代码。因此,在不同的平台上有不同的执行阶段。javascript代码无法评估PHP源代码,并且不了解PHP变量及其状态 问题中的代码表示ja

为什么在将PHP变量传递到javascript之前需要回显它

比如说,

drawChart(600/50, <?php echo $day; ?>, ...)
?


谢谢

您提出的问题需要解释一个强有力的概念性问题。PHP代码在web服务器上处理,称为服务器端代码,而javascript代码在服务器返回页面html后在web浏览器上执行,称为客户端代码。因此,在不同的平台上有不同的执行阶段。javascript代码无法评估PHP源代码,并且不了解PHP变量及其状态

问题中的代码表示javascript函数调用,其中一个参数恰好是PHP变量。在浏览器接收PHP变量之前,必须在服务器上对其求值,这样javascript调用才能正常工作。如果$day变量的值为13,则以下代码:

图纸600/50

将以如下方式呈现到HTML中:

图纸600/50,13

但是,如果跳过PHP内容,您将得到:

绘图600/50美元/天

这可能在浏览器中不起作用

此外,您可能有一个名为$day的javascript变量,因此代码将使用该变量,而不是PHP计算的变量,甚至可以在没有错误的情况下工作,但会出现意外行为。

更新:在回答一个较老的问题时,可以提供更好的解释

这使许多web开发人员在早期感到困惑

您的PHP代码正在服务器端运行。变量$day在web请求到达服务器时计算

JavaScript代码在客户端运行。从服务器的角度来看,它是一组发送到用户浏览器的静态文本。然后浏览器将此静态文本解释为代码并执行它

您不能在PHP和JavaScript之间共享变量,因为在执行JavaScript时,您已不再处于服务器运行PHP的上下文中


因此,您使用echo输出$day的值,而它在PHP上下文中是一个变量;然后将其值注入JavaScript,在JavaScript中它不再是来自客户端上下文的变量。更确切地说,在您的示例中,就好像您使用硬编码值调用drawChart一样。

脚本如何知道$day是PHP变量还是JavaScript变量?因此echo将值而不是变量传递给JS?
drawChart(600/50, $day, ...)